問題如下:我有一個包含多個工作表的Excel文件,我需要將每個工作表的G列複製到一個新的工作表中(列應位於彼此之間或具有數據的列之間的空列)。我還想問問是否可以將每個工作表的名稱放在相應的列上方。將多個工作表的列中的值複製到一箇中
到現在爲止,我用這個代碼:
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
看來幾乎是完美的工作。唯一的問題是,在新創建的工作表中,列中的值具有#DIV/0錯誤。我認爲問題在於代碼是複製格式而不是數值。
給這個解決方案一個嘗試:http://stackoverflow.com/questions/23937262/excel-vba-copy-paste-values-only-xlpastevalues – Ralph
對不起,我是VBA的新手。我真的不知道應該更改哪部分代碼:( –
您的目的地似乎是每隔一列(例如* 1,3,5等)*這是否正確? – Jeeped