I'm versuchen, ganze Spalte in BlattA zu Blatt B zu kopieren. BlattA Spalte hat Werte mit Formeln gebildet. I'm Kopieren SheetA Spalte Werte nur mit xlPasteValues. Aber es ist nicht fügen Sie die Werte zu einem anderen BlattB. Die Spalte in BlattB ist leer. Mein VBA-Code
Public Sub CopyrangeA()
Dim firstrowDB As Long, lastrow As Long
Dim arr1, arr2, i As Integer
firstrowDB = 1
arr1 = Array("BJ", "BK")
arr2 = Array("A", "B")
For i = LBound(arr1) To UBound(arr1)
With Sheets("SheetA")
lastrow = Application.Max(3, .Cells(.Rows.Count, arr1(i)).End(xlUp).Row)
.Range(.Cells(1, arr1(i)), .Cells(lastrow, arr1(i))).Copy
Sheets("SheetB").Range(arr2(i) & firstrowDB).PasteSpecial xlPasteValues
End With
Next
Application.CutCopyMode = False
End Sub
Wenn Sie nur die gesamte Spalte kopieren wollen, können Sie den Code sehr vereinfachen, indem Sie etwas wie folgt tun:
Sub CopyCol()
Sheets("Sheet1").Columns(1).Copy
Sheets("Sheet2").Columns(2).PasteSpecial xlPasteValues
End Sub
Oder
Sub CopyCol()
Sheets("Sheet1").Columns("A").Copy
Sheets("Sheet2").Columns("B").PasteSpecial xlPasteValues
End Sub
Oder wenn Sie die Schleife beibehalten wollen
Public Sub CopyrangeA()
Dim firstrowDB As Long, lastrow As Long
Dim arr1, arr2, i As Integer
firstrowDB = 1
arr1 = Array("BJ", "BK")
arr2 = Array("A", "B")
For i = LBound(arr1) To UBound(arr1)
Sheets("Sheet1").Columns(arr1(i)).Copy
Sheets("Sheet2").Columns(arr2(i)).PasteSpecial xlPasteValues
Next
Application.CutCopyMode = False
End Sub
Ich persönlich würde sie auch ein wenig kürzen, wenn Sie nur die Spalten brauchen:
For i = LBound(arr1) To UBound(arr1)
Sheets("SheetA").Columns(arr1(i)).Copy
Sheets("SheetB").Columns(arr2(i)).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Next
wie aus diesem Codeschnipsel hervorgeht, gibt es nicht viel Sinn in lastrow
oder firstrowDB