【问题标题】:Excel VBA copy data in a range for every 100000 rows and paste to a different sheet until all the data has been copied in the rangeExcel VBA每100000行复制一个范围内的数据并粘贴到不同的工作表,直到该范围内的所有数据都被复制
【发布时间】:2015-10-17 18:05:34
【问题描述】:

我想将工作表 (Sheet1) 中的数据复制到另一工作表 (Sheet2)。但是,我希望以 100,000 行的块为单位完成并继续,直到 Sheet1 中的所有数据都已复制到 Sheet2。我玩弄了偏移量、rows.count 等,但我无法让它工作。非常感谢任何帮助。

Sub MyRow()
Dim iRow
Dim Z As Integer

Application.ScreenUpdating = False

For Z = 1 To 8
    Sheets("sheet2").Range("A2:E100000" & Z).Copy Sheets("Sheet1").Range("A:E")
Next Z

End Sub

【问题讨论】:

  • 请写出你试过的代码
  • 感谢您的回复。不幸的是,我的代码不值得放在这里。我根本不知道从哪里开始。就像复制范围内的信息(包括 100000 行,第 10 列)一样简单,然后将该信息粘贴到另一张纸上,然后恢复到接下来的 100000 行
  • 这不是每次单独的 100k 行。首先,当 Z=1 时,"A2:E100000" & Z 的结果是A2:E1000001。那么,当Z=2时,结果就是A2:E1000002,等等……

标签: vba dynamic count row offset


【解决方案1】:

我尝试尽可能多地重用您的代码。我想这可能是你想要的。

Sub MyRow()
Dim Z As Integer
Dim lastRow As Long

Application.ScreenUpdating = False

lastRow = Sheets("Sheet1").Cells.SpecialCells(xlCellTypeLastCell).Row
For Z = 1 To WorksheetFunction.RoundUp(lastRow / 100000, 0)
    Sheets("Sheet1").Range("A1:E100000").Offset((Z - 1) * 100000).Copy _
      Sheets("Sheet2").Range("A1").Offset((Z - 1) * 100000)
Next

End Sub

【讨论】:

  • 谢谢。这很有帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多