合并多个excel文件并按列对齐
我在一个文件夹中有几个excel文件,希望合并它们,但要按列对齐合并的文件: 以下代码将文件夹中的所有文件按行对齐:合并多个excel文件并按列对齐,excel,excel-2010,spreadsheet,vba,Excel,Excel 2010,Spreadsheet,Vba,我在一个文件夹中有几个excel文件,希望合并它们,但要按列对齐合并的文件: 以下代码将文件夹中的所有文件按行对齐: Sub simpleXlsMerger() Dim bookList As Workbook Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object Application.ScreenUpdating = False Set mergeObj = CreateObject(
Sub simpleXlsMerger()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")
'change folder path of excel files here
Set dirObj = mergeObj.Getfolder("C:\Users\mergeFolder")
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)
'change "A2" with cell reference of start point
Range("A1:IV" & Range("A1000000").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(1).Activate
'Do not change the following column.
Range("A1000000").End(xlUp).Offset(1, 0).PasteSpecial
Application.CutCopyMode = False
bookList.Close
Next
End Sub
在这里您可以看到输出:
有没有关于如何在每列中对齐这些文件的建议
谢谢你的回复
更新
我得到的错误是:
可能是这样的:
Sub simpleXlsMerger()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")
'change folder path of excel files here
Set dirObj = mergeObj.Getfolder("C:\Users\mergeFolder")
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)
'change "A2" with cell reference of start point
Range("A1:IV" & Range("A1000000").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(1).Activate
if Range("A1").Value <> "" and Range("A2").Value <> "" then
Range("A1").End(xlRight).Offset(0, 1).PasteSpecial
else
if Range("A1").Value = "" then
Range("A1").PasteSpecial
else
Range("A2").PasteSpecial
end if
end if
Application.CutCopyMode = False
bookList.Close
Next
End Sub
Sub-simplexlsmerge()
将书目设置为工作簿
Dim mergeObj作为对象、dirObj作为对象、filesObj作为对象、everyObj作为对象
Application.ScreenUpdating=False
设置mergeObj=CreateObject(“Scripting.FileSystemObject”)
'在此处更改excel文件的文件夹路径
Set dirObj=mergeObj.Getfolder(“C:\Users\mergeFolder”)
设置filesObj=dirObj.Files
对于FileObj中的每个everyObj
Set bookList=工作簿.打开(everyObj)
'使用起始点的单元格引用更改“A2”
范围(“A1:IV”和范围(“A1000000”)。结束(xlUp)。行)。复制
此工作簿。工作表(1)。激活
如果范围(“A1”).值“”和范围(“A2”).值“”,则
范围(“A1”)。结束(xlRight)。偏移量(0,1)。粘贴特殊
其他的
如果范围(“A1”).Value=“”,则
范围(“A1”)。特殊
其他的
范围(“A2”)。特殊
如果结束
如果结束
Application.CutCopyMode=False
书单,关闭
下一个
端接头
谢谢您的回答!我在范围(“A1”).End(xlRight).Offset(0,1).PasteSpecial
处出错。有什么建议吗?谢谢你的回答!请看我的更新!谢谢你的回答!然而,我仍然得到与以前相同的错误。我还重新启动了工作表,以确保一切正常工作。。。任何建议。