【问题标题】:Combine copied data into a single worksheet将复制的数据合并到一个工作表中
【发布时间】:2016-06-03 03:22:13
【问题描述】:

我目前正在使用 VBA 脚本将来自多个工作表和工作簿的数据组合到一个新工作簿中。当前脚本会执行此操作,但会在目标工作簿中创建多个工作表。是否有可能只有目的地是一张纸?

Sub copydata()
Dim FolderPath As String, FilePath As String, FileName As String
FolderPath = "C:\attach\"
FilePath = FolderPath & "*.xlsx"
FileName = Dir(FilePath)

 Dim erow As Long, lastrow As Long, lastcolumn As Long

 'loops through directory as long as it is not blank and defines files as workbooks.
Do While FileName <> ""
Dim wb As Workbook
Set wb = Workbooks.Open(FolderPath & FileName)
'nested loop for sheets in workbooks
For counter = 3 To 9
'Sheets(“Sheet1”).Select
wb.Worksheets(counter).Activate
lastrow = ActiveSheet.Cells(Rows.count, 1).End(xlUp).Row
lastcolumn = ActiveSheet.Cells(1, Columns.count).End(xlToLeft).Column
Range(Cells(2, 1), Cells(lastrow, lastcolumn)).Copy

'Sheets("Sheet1").Select
Workbooks("ZMasterFile.xlsx").Worksheets(counter).Activate
erow = ActiveSheet.Cells(Rows.count, 1).End(xlUp).Offset(1, 0).Row
Cells(erow, 1).Select
ActiveSheet.Paste
Next
wb.Close savechanges:=False

 FileName = Dir

Loop

erow = ActiveSheet.Cells(Rows.count, 1).End(xlUp).Offset(1, 0).Row
Cells(erow, 1).Select

【问题讨论】:

  • 您在脚本的哪个位置创建工作表?他们原本不在那里吗?

标签: vba excel


【解决方案1】:

这条线可能会给你带来麻烦。

'Sheets("Sheet1").Select
Workbooks("ZMasterFile.xlsx").Worksheets(counter).Activate

在第二行,您正在激活工作表(计数器)

如果您希望所有数据都在同一张表中,我认为您应该放置 Worksheet("Sheet1")。

【讨论】:

    【解决方案2】:

    当然。可能您最好的选择是安装您从下面的链接中找到的插件。

    http://www.rondebruin.nl/win/addins/rdbmerge.htm

    这个工具非常有用!试试看,你会看到!

    另外,请参阅下面的链接。您将看到那里公开的所有代码,因此这是一个很好的学习示例。

    http://www.rondebruin.nl/win/s3/win008.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多