是否有一種方法可以將多個Excel電子表格中的數據按列合併在一起?通過列合併多個文檔中的數據的代碼
我有200個電子表格,每個電子表格在前100列(A-CV)中都有。 我想合併這200個文檔中的所有「A」列,所有「B」列合併在一起,所有「C」列合併在一起,等等。
至於合併,不需要特定的順序。只要細胞本身不合並。
由於代碼將會合並大量文本,因此能夠將所有電子表格中的一列一次合併到一個唯一文件中,然後在所有其他列(A- CV),而不是嘗試將所有列(從所有電子表格)合併到一個文件中。
我找到了合併列的代碼,但它不是我所需要的。有沒有辦法修改這段代碼來幫助我上面描述的內容?
Sub Macro1()
'
' Macro1 Macro
'
Dim cell As Range
For i = 1 To 50
Sheets("Sheet1").Select
If Cells(1, i).Value = "Cat 2" Then
Columns(i).Select
Selection.Copy
Sheets("Sheet2").Select
Range("A1").Select
ActiveSheet.Paste
End If
If Cells(1, i).Value = "Cat 6" Then
Columns(i).Select
Selection.Copy
Sheets("Sheet2").Select
Range("B1").Select
ActiveSheet.Paste
End If
If Cells(1, i).Value = "Cat 4" Then
Columns(i).Select
Selection.Copy
Sheets("Sheet2").Select
Range("C1").Select
ActiveSheet.Paste
End If
Next i
End Sub
如果您需要更多信息,請讓我知道。如果我需要以某種方式重新命名文件以幫助完成此過程,我肯定會願意這樣做。
合併的數據可以發送到電子表格,word文檔或記事本。我對任何這些選項都很好。
更新:這是修改後的新代碼。我遇到的問題在下面的評論中。
Sub copydocument()
Dim wb As Workbook
Dim wb1 As Workbook
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error GoTo resetsettings
Set wb = ThisWorkbook
MyPath = "C:\Users\HNR\Desktop\A\" 'Path of folder with \ at the end
MyExtension = "*.xlsx"
Myfile = Dir(MyPath & MyExtension)
While Myfile <> vbNullString
Set wb1 = Workbooks.Open(MyPath & Myfile)
lr = wb.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
lr1 = wb1.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
wb1.Sheets(1).Range("A" & lr1).Copy Destination:=wb.Sheets(1).Range("A" & (lr + 1))
wb1.Close
Myfile = Dir
Wend
resetsettings:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
每個電子表格中有多少行?你想在新的工作表中並排粘貼相同的列嗎? –
對問題1的回答:每個電子表格都有不同數量的行。我打開了幾個,最高的行數是2500;但是,可能會有一些電子表格。有沒有辦法合併列,然後做一個「排序/過濾器」,使文本的單元格到頂部和那些沒有底部?還是一種只用文本定位單元格的方式,而忽略合併時爲空的單元格? [對以下問題2的回答如下] – IrisRose
對問題2的回答:我想將一個在另一個下面的列粘貼到新的工作表中。並且爲所有列A創建一個工作表,爲所有列B創建另一個工作表等等,這樣我就不必爲所有列創建一個大文檔,因爲這可能會導致我的計算機崩潰。 – IrisRose