合并多个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(

我在一个文件夹中有几个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("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
处出错。有什么建议吗?谢谢你的回答!请看我的更新!谢谢你的回答!然而,我仍然得到与以前相同的错误。我还重新启动了工作表,以确保一切正常工作。。。任何建议。