我几乎拥有我想要的东西,但似乎无法一路走到那里。我正试图从数百个工作表中获取数据。我想复制/粘贴从A5开始到AG的每张纸的值(行是变化的)。我之前遇到的一个问题是A列并不总是有值,即使该行的其余部分也有。 A列对我的数据收集并不重要,因此我在B5开始复制/粘贴。
这复制了我想要复制的所有内容,但每张表上的几行都是公式,我需要粘贴的值。这是我真正迷失的地方。
最后,我的“总计”表格中有两张“高级”和“透视”表格。
以下是我一直在使用的内容:
Sub CombineData()
Dim Sht As Worksheet
For Each Sht In ActiveWorkbook.Worksheets
If Sht.Name <> "Total" And Sht.Range("B5").Value <> "" Then
Sht.Activate
LastRow = Range("B65536").End(xlUp).Row
Range("B5", Cells(LastRow, "AG")).Copy
Sheets("Total").Select
Range("B65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Else
End If
Next Sht
End Sub
任何帮助都会很棒。谢谢!
答案 0 :(得分:0)
这样的事情对你有用:
Sub CombineData()
Dim wb As Workbook
Dim ws As Worksheet
Dim wsTot As Worksheet
Dim aData As Variant
Set wb = ActiveWorkbook
Set wsTot = wb.Sheets("Total")
For Each ws In ActiveWorkbook.Sheets
If InStr(1, " " & wsTot.Name & " Advanced Pivot ", " " & ws.Name & " ", vbTextCompare) = 0 _
And Len(Trim(ws.Range("B5").Value)) > 0 Then
aData = ws.Range("B5:AG" & ws.Cells(ws.Rows.Count, "B").End(xlUp).Row).Value
wsTot.Cells(wsTot.Rows.Count, "B").End(xlUp).Offset(1).Resize(UBound(aData, 1), UBound(aData, 2)).Value = aData
Erase aData
End If
Next ws
End Sub