Excel VBA脚本在第32768行停止工作

时间:2017-07-21 17:12:52

标签: excel vba excel-vba excel-2016

我有一个宏,我已经用了相当长的时间来对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

有关如何解决此问题的任何建议吗?

1 个答案:

答案 0 :(得分:1)

尝试:

Dim cellVolume As Long, cellPage As Long, cellItem As Long