Excel VBA “Overflow” Error on setting Range.Value
我有一个宏,该宏在打开Excel工作簿时运行,并且基本上从名为"当日"的选项卡中获取数据并将其移至"上一交易日",然后从另一工作簿中获取数据并将其粘贴到当日(实际上使用范围 .value不能复制/粘贴)。 在几天内进行多次测试,一切都正常。 但是,现在它在代码的Range.Value部分上引发了溢出错误。 这绝对不是大小问题,因为代码是:
1 | PrevDay.Range("A1:Q" & ScoreCurRows).Value = CurrDay.Range("A1:Q" & ScoreCurRows).Value |
其中ScoreCurRows被声明为Long,并从"当前日期"表中拉出UsedRange,PrevDay被定义为Sheets("上一交易日"),CurrDay被定义为Sheets("当前日")。 它通常也少于20行数据,因此即使它是整数,也不会造成问题。
有谁知道为什么这突然引发了溢出错误,如果我应该寻找什么?
当VBA尝试将它们加载到变量数组中时,您必须在源范围内具有一些导致溢出的值。
1 = CurrDay.Range("A1:Q" & ScoreCurRows).Value
例如,格式为日期的单元格的值对于日期而言太大。 因此,使用
1 2 | PrevDay.Range("A1:Q" & ScoreCurRows).Value = CurrDay.Range("A1:Q" & ScoreCurRows).Value2 ' ^^^^^^ |