【发布时间】:2018-04-04 21:42:28
【问题描述】:
想要创建一个宏来循环遍历工作簿中的所有工作表并从每个工作表中选择所有数据,然后将所述数据粘贴到“主”工作表上的单个合并表中。所有工作表都有相同的列标题到“AB”列。
目前尝试使用此代码,但我无法将任何内容粘贴到主工作表上。可能会过度考虑设置每个选项卡的范围。
只是寻找一个简单的解决方案来复制每个工作表中的所有活动数据并将其粘贴到一个工作表中,以便将其全部合并。
提前致谢!
Sub CombineData()
Dim wkstDst As Worksheet
Dim wkstSrc As Worksheet
Dim WB As Workbook
Dim rngDst As Range
Dim rngSrc As Range
Dim DstLastRow As Long
Dim SrcLastRow As Long
'Refrences
Set wkstDst = ActiveWorkbook.Worksheets("Master")
'Setting Destination Range
Set rngDst = wkstDst.Cells(DstLastRow + 1, 1)
'Loop through all sheets exclude Master
For Each wkstSrc In ThisWorkbook.Worksheets
If wkstSrc.Name <> "Master" Then
SrcLastRow = LastOccupiedRowNum(wkstSrc)
With wkstSrc
Set rngSrc = .Range(.Cells(2, 1), .Cells(SrcLastRow, 28))
rngSrc.Copy Destination:=rngDst
End With
DstLastRow = LastOccupiedRowNum(wkstDst)
Set rngDst = wkstDst.Cells(DstLastRow + 1, 1)
End If
Next wkstSrc
End Sub
【问题讨论】:
-
单步调试代码并检查函数返回的值。您可能也想发布代码。您粘贴的单元格是否包含公式?
-
你还没有给
DstLastRow赋值 -
@chrisneilsen- uninitialised 它将为零,所以没关系。
-
这似乎是一个重复的问题,SO Question