我有一个宏,我已经用了相当长的时间来对6个一组的细胞进行剪切/粘贴/移动操作(Excel 2016)。今天我尝试使用它是迄今为止我用过的最长的工作表,其上有近20万行。脚本进入应该在第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
我被初始化为2,在这个特殊的工作表中,nLastRow将是193596。
我现在正在观察我的CPU使用情况,并且在此脚本运行时它永远不会超过63%,因此它不应该成为处理能力的问题。
我可以将此工作表分成几个部分作为kludgey修复,但我宁愿让它正常工作。
我的变量设置为:
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
有关如何解决此问题的任何建议吗?
答案 0 :(得分:1)
尝试:
Dim cellVolume As Long, cellPage As Long, cellItem As Long