每第1000行复制一张新表

  • 我有167张工作簿
  • 每张纸有1000行。
  • 我需要一个新的工作表,其中包含每张工作表的所有最后一行的列表。

所以我最终会得到一张包含167行的表格,每张表格中的第1000行复制到新表格中。

有一个优秀的,免费的插件, ASAP实用程序 ,提供了许多其他选项中的function。

你需要的工具是Sheets»把几行中的行或列放在一起..

您可以使用“间接”。 你需要把你的工作表名称放在第一列,第一行的列标识符('A','B','C'等)

在这里输入图像说明

然后你可以从B2开始使用以下内容,

=INDIRECT("'"&$A2&"'!"&B$1&"1000") 

这告诉Excel公式的文本结果实际上是对特定单元格的引用,使用公式($ A2和B $ 1)中单元格的内容作为该文本string的一部分。

你可以使用这个代码的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