【发布时间】:2017-04-28 13:46:42
【问题描述】:
- 我有一个 167 张工作簿
- 每张工作表有 1000 行。
- 我需要一个新工作表,其中包含每张工作表中所有最后一行的列表。
所以我最终会得到一个包含 167 行的工作表,其中每个工作表的第 1000 行复制到新工作表。
【问题讨论】:
-
您的代码和/或公式的哪一部分不起作用?如果您向我们展示您的尝试,也许我们可以帮助您解决它。
标签: excel excel-formula vba
所以我最终会得到一个包含 167 行的工作表,其中每个工作表的第 1000 行复制到新工作表。
【问题讨论】:
标签: excel excel-formula vba
有一个出色的免费插件 ASAP Utilities 提供此功能以及许多其他选项。
你需要的工具是Sheets » Put together rows or columns from several sheets..
【讨论】:
【讨论】:
您可以将此代码用于 VBA,我已对代码进行了注释,以便您查看每一行的作用。
Sub CopyRows()
Dim rowCounter As Long
Dim lastShtName As String
' ** COUNTER FOR EACH ROW, INCREMENT EACH TIME A ROW IS COPIED
rowCounter = 1
' ************************************************
' **** SET SHEET NAME VARIABLE FOR LAST SHEET ****
lastShtName = "LastSheet"
' ************************************************
' ************************************************
' ** LOOP THROUGH SHEETS
For Each sht In ThisWorkbook.Sheets
' ** LOOP THROUGH ALL SHEETS EXCEPT FOR LAST SHEET, WHICH DATA IS PASTED ON. UPDATE SHEET NAME TO MATCH
If sht.Name <> lastShtName Then
' ** COPY WHOLE ROW
ThisWorkbook.Sheets(lastShtName).Range("A" & rowCounter).EntireRow.Value = sht.Range("A" & 1000).EntireRow.Value
' ** INCREMENT COUNTER
rowCounter = rowCounter + 1
End If
' ** CONTINUE LOOP
Next sht
End Sub
【讨论】: