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
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
(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