我有一个宏,我已经使用它很长时间了,对 6 组的单元格执行剪切/粘贴/移动操作 (Excel 2016(。 今天,我尝试在迄今为止我尝试过的最长的工作表上使用它,该工作表有近 200,000 行。 脚本到达一个应该在第 32768 行发生的操作,此时我收到溢出错误。 昨晚我用一个 shell 脚本并发运行它,这给我的 CPU 带来了真正的压力,但今天我在没有其他任何东西运行的情况下运行它,并且在同一位置出现溢出错误。 导致问题的脚本部分是:
Do Until i > nLastRow
cellVolume = i - 1
cellPage = i + 1
cellItem = cellPage + 1
.Range("A" & i).Cut Range("B" & cellVolume)
.Range("A" & cellPage).Cut Range("C" & cellVolume)
.Range("A" & cellItem).Cut Range("D" & cellVolume)
i = i + 6
Loop
i 初始化为 2,在此特定工作表中,nLastRow 将被193596。
我刚才在观察我的 CPU 使用率,当这个脚本运行时它永远不会超过 63% 左右,所以这不应该是处理能力的问题。
我可以将此工作表拆分为多个部分作为笨拙的修复,但我宁愿让它正常工作。
我的变量设置为:
Dim i As Long, cellVolume As Integer, cellPage As Integer, cellItem As
Integer, j As Integer
Dim nLastRow As Long, x As Long
Dim str As String
关于如何解决此问题的任何建议?
尝试:
Dim cellVolume As Long, cellPage As Long, cellItem As Long