2010-10-10 9 views
3

Existe-t-il un moyen de copier/coller une ligne sans utiliser le presse-papiers. copier une plage - rangée à une autre plage de pâte de feuille - rangée entière. J'ai besoin de valeurs, pas de formule.VBA: Copier coller sans presse-papier

Sheets("Data").Select 
ActiveCell.EntireRow.Copy 

Sheets("TSP").Select 
ActiveCell.PasteSpecial Paste:=xlPasteValues 
+0

Voulez-vous uniquement copier-coller les valeurs? Ou encore copier-coller les cellules formatées? –

+0

Suivez les instructions ici ==> http://excelexperts.com/copy-values-vba –

Répondre

9

Ce code copie les valeurs (pas les formules).

Sub a() 
    Worksheets("Sheet2").Range("TS").Value=Worksheets("Sheet1").Range("1:1").Value 
End Sub 

Où "TS" est le nom d'une plage (une ligne).

Est-ce ce que vous essayez d'accomplir?

Modifier

Pour copier la ligne active à Sheet2.Row2 (par exemple), vous pouvez essayer:

Sub a() 
Dim myrow As Integer 
myrow = ActiveWindow.RangeSelection.Row 
Worksheets("Sheet2").Range("2:2").Value = Worksheets("Sheet1").Rows(myrow).Value 
End Sub 

HTH!

+0

J'ai essayé ci-dessous mais j'ai échoué: Sub a() Dim TS As Plage Set TS = Feuilles de travail ("Sheet2"). Range ("2: 2") Feuilles de travail ("Sheet2"). Range ("TS"). Value = Feuilles de travail ("Sheet1"). Range ("1: 1"). Valeur End Sub – Merlin

+0

1st will sheet1, range 1: 1 trouver la cellule active? Et, comment définir la gamme pour activecell, wholeRow sur sheet2 .... – Merlin

+0

Quelle est la source de votre copie? La rangée actuelle? Une ligne prédéfinie spécifique? –

1

Pour une raison quelconque, il n'y en a pas. PasteSpecial est tout au sujet du presse-papiers.

Si vous avez seulement besoin de valeurs, créez une boucle For en les copiant.

Questions connexes