2016-12-07 3 views
0

Ich habe diese Formel unten, die besagt, dass es die spezifischen Spalten, die ich für 1 Arbeitsblatt habe, auf diejenigen übertragen, die ich in der zweiten angegeben habe. Es passiert jedoch nichts. Würde mich über Hilfe freuen!Kopieren bestimmter Spalten von 1 Excel-Blatt zu einem anderen mit VBA

Sub copycolumns() 
Dim lastrow As Long, erow As Long 

lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row 

For i = 2 To lastrow 
Sheet1.Cells(i, 2).Copy 
airow = Sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row 
Sheet1.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 1) 

Subscriber.Cells(i, 1).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 2) 

Subscriber.Cells(i, 3).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 3) 

Subscriber.Cells(i, 4).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 4) 

Subscriber.Cells(i, 5).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 5) 

Subscriber.Cells(i, 6).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 6) 

Subscriber.Cells(i, 11).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 25) 

Subscriber.Cells(i, 12).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 26) 

Subscriber.Cells(i, 13).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 27) 

Subscriber.Cells(i, 14).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 28) 

Subscriber.Cells(i, 16).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 19) 

Subscriber.Cells(i, 17).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 7) 

Subscriber.Cells(i, 18).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 9) 

Subscriber.Cells(i, 19).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 13) 

Subscriber.Cells(i, 20).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 14) 

Subscriber.Cells(i, 23).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 15) 

Subscriber.Cells(i, 24).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 16) 

Subscriber.Cells(i, 25).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 10) 

Subscriber.Cells(i, 26).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 11) 

Subscriber.Cells(i, 27).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 12) 

Subscriber.Cells(i, 29).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 31) 

Subscriber.Cells(i, 30).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 17) 

Subscriber.Cells(i, 31).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 22) 

Subscriber.Cells(i, 32).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 23) 

Subscriber.Cells(i, 33).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 18) 

Subscriber.Cells(i, 33).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 32) 

Subscriber.Cells(i, 38).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 24) 

Subscriber.Cells(i, 42).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 29) 

Subscriber.Cells(i, 44).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 30) 

Subscriber.Cells(i, 46).Copy 
Subscriber.Paste Destination:=Worksheets(“Sheet1”).Cells(airow, 3) 

Next i 

Application.CutCopyMode = False 

Range(“A1”).Select 

End Sub 
+0

Sie sollten eine Methode wählen, um auf Arbeitsblätter zu verweisen und sich daran zu halten. Die Änderung zwischen Blatt-Codename und Blatt-Tabname ... macht den Code nicht gut lesbar. Zum Beispiel sind 'Sheet1' und' Worksheets ("Sheet1") das gleiche Blatt. ... und auf welches Blatt sich "Subscriber" bezieht ... Ich sehe nirgends eine 'Set'-Anweisung, die dieser Variablen etwas zuweist. Sie müssen ein wenig mehr Details bereitstellen ... PLZ. – jwdasdk

+0

(a) Beachten Sie, dass 'Worksheets (" Sheet1 ")' normalerweise nicht funktionieren - Sie sollten 'Worksheets (" Sheet1 ")' verwenden. (b) Was meinst du mit "nichts passiert"? (c) Zeigt das Durchlaufen des Codes, dass es in die Schleife "For i = 2 To lastrow" geht oder überspringt (d. h. "lastrow" ist kleiner als 2)? – YowE3K

Antwort

1

Angenommen, Sie Spalte i in Arbeitsblatt A bis Spalte j in Arbeitsblatt B. eine Zeile kopieren möchte, kann dies für Sie tun:

Werte kopieren nur:

worksheets("B").columns(j).value=worksheets("A").columns(i).value 

alles kopieren:

worksheets("A").columns(i).Copy 
worksheets("B").columns(j).PasteSpecial xlPasteAll 
Verwandte Themen