Das Problem ist das folgende: Ich habe eine Excel-Datei mit mehreren Arbeitsblättern und ich musste die G-Spalte von jedem Arbeitsblatt zu einem einzigen neuen Arbeitsblatt kopieren (die Spalten sollten neben sein einander oder mit einer leeren Spalte zwischen den Spalten mit Daten). Ich wollte auch fragen, ob es möglich ist, den Namen jedes Arbeitsblattes über die entsprechende Spalte zu setzen.Kopiere Werte in einer Spalte von mehreren Arbeitsblättern in eins
Bisher habe ich diesen Code:
Sub Copy_G_Columns()
Dim ws As Worksheet, i As Long
Application.ScreenUpdating = False
On Error Resume Next
Set ws = Sheets("Gee Columns")
If Err.Number <> 0 Then
ActiveWorkbook.Sheets.Add After:=ActiveWorkbook.Sheets(Sheets.Count): ActiveSheet.Name = "Gee Columns"
On Error GoTo 0
Else
Sheets("Gee Columns").Select
End If
For i = 1 To ActiveWorkbook.Sheets.Count - 1
With Sheets(i)
.Range("G1:G" & .Cells(.Rows.Count, 7).End(xlUp).Row).Copy Cells(2, i * 2 - 1)
Cells(1, i * 2 - 1) = Sheets(i).Name
End With
Next i
Application.ScreenUpdating = True
End Sub
Es scheint fast perfekt zu arbeiten. Das einzige Problem besteht darin, dass die Werte in den Spalten in dem neu erstellten Blatt einen # DIV/0-Fehler aufweisen. Ich denke, das Problem ist, dass der Code die Formate und nicht die Werte kopiert.
Geben Sie dieser Lösung einen Versuch: http://StackOverflow.com/Questions/23937262/Excel-VBA-Copy-Paste-Values-only-XlPasteValues – Ralph
Es tut mir leid, ich bin ein Neuling, wenn es um VBA geht. Ich verstehe nicht wirklich, welchen Teil des Codes ich ändern sollte :( –
Ihr Ziel scheint jede zweite Spalte zu sein (zB * 1, 3, 5, etc *) Ist das korrekt? – Jeeped