Ich bin ein Neuling zu diesem VBA/Makro. Ich muss bestimmte Spalten kopieren und in ein anderes Arbeitsblatt einfügen. Ich verwende den Code, der vom vorherigen Thread bereitgestellt wird. Allerdings müssen die Daten in der ersten Zeile eingefügt werden. Derzeit werden die Daten in der zweiten Zeile eingefügt. Unten ist der Code:Wie man bestimmte Spalten von einem Blatt kopiert und in ein anderes Blatt in einem anderen Bereich in der ersten Reihe einfügt?
Sub copypaste()
Dim lastrow As Integer, erow As Integer, sheet1 As Worksheet, sheet2 As
Worksheet, icol As Long
Set sheet1 = Worksheets("Sheet1")
Set sheet2 = Worksheets("Sheet2")
lastrow = sheet1.Cells(Rows.Count, 1).End(xlUp).Row
For i = 4 To lastrow
erow = sheet2.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
sheet2.Cells(erow, 2) = sheet1.Cells(i, 1)
sheet2.Cells(erow, 3) = sheet1.Cells(i, 2)
sheet2.Cells(erow, 7) = sheet1.Cells(i, 3)
sheet2.Cells(erow, 5) = sheet1.Cells(i, 5)
sheet2.Cells(erow, 4) = sheet1.Cells(i, 6)
sheet2.Cells(erow, 8) = sheet1.Cells(i, 11)
sheet2.Cells(erow, 9) = sheet1.Cells(i, 8)
sheet2.Cells(erow, 13).Value = sheet1.Cells(i, 9).Value
Next i
Worksheets("Sheet1").Columns().AutoFit
Cells(1, 1).Activate
End Sub
Die Kopfzeile von Blatt1 muss auch nicht kopiert werden.
Danke. Link from the previous thread. Assistance was given by Tim Wilkinson
Das obige Problem wurde gestern von @ sktneer gelöst. Die Daten wurden erfolgreich in der ersten Zeile eingefügt.
Allerdings, in Bezug auf den gleichen Fall, wie kann ich die gefilterten Daten von Blatt1 kopieren? Ich habe den Autofilter-Code eingegeben, um die Kriterien für den Copypaste-Prozess anzugeben, bin mir aber nicht sicher, ob ich es richtig gemacht habe oder nicht.
Unten ist der eingestellte Code:
sub copypaste()
Dim lastrow As Integer, erow As Integer, sheet1 As Worksheet, sheet2 As
Worksheet, lrow As Long
Set sheet1 = Worksheets("Sheet1")
Set sheet2 = Worksheets("Sheet2")
strSearch = "LOCAL"
lastrow = sheet1.Cells(Rows.Count, 1).End(xlUp).Row
With sheet1
AutoFilterMode = False
lrow = sheet1.Range("L" & .Rows.Count).End(xlUp).Row
With .Range("L3:L" & lrow)
.AutoFilter Field:=1, Criteria1:="=*" & strSearch & "*"
For i = 4 To lastrow
If sheet2.Cells(1, 2) = "" Then
erow = 1
Else
erow = sheet2.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
End If
sheet2.Cells(erow, 2) = sheet1.Cells(i, 1)
sheet2.Cells(erow, 3) = sheet1.Cells(i, 2)
sheet2.Cells(erow, 7) = sheet1.Cells(i, 3)
sheet2.Cells(erow, 5) = sheet1.Cells(i, 5)
sheet2.Cells(erow, 4) = sheet1.Cells(i, 6)
sheet2.Cells(erow, 8) = sheet1.Cells(i, 11)
sheet2.Cells(erow, 9) = sheet1.Cells(i, 8)
sheet2.Cells(erow, 13).Value = sheet1.Cells(i, 9).Value
Next
End With
AutoFilterMode = False
End With
Worksheets("Sheet1").Columns().AutoFit
Cells(1, 1).Activate
End Sub
sie im Voraus dankend.
Dank @sktneer für eine baldige Antwort. es funktioniert. – hanaa
Gern geschehen Hanaa! Froh, dass ich helfen konnte. – sktneer
@hanaa was ist das? Warum haben Sie das Tag der ausgewählten Antwort entfernt? – sktneer