我有一个非常漫长而笨重的代码,但通常会崩溃并给出无响应消息。我发现,解决此问题的一种方法是将变量声明为整数,而不是长整数,如果我知道它们不会超过32,767。根据工作表的大小更改如何声明变量?
为了确保我以后不会遇到问题,我希望在脚本的开头插入一行代码,根据工作表的大小将变量变暗为整型或长整型。我至今是:
If Library.Range("A1").SpecialCells(xlCellTypeLastCell).row > 30000 Then
Dim i As Long
Dim LastRow As Long
ElseIf Library.Range("A1").SpecialCells(xlCellTypeLastCell).row <= 30000 Then
Dim i As Integer
Dim LastRow As Integer
但是,这是给我的错误有重复的声明语句。有没有另一种方法呢?或者我做错了什么?
什么是你的代码做什么!如果在一些变量上使用少量内存会导致它无响应,那么就会出现一些根本性的错误! –
此外,[VBA无论如何将所有整数转换为长整数](https://msdn.microsoft.com/en-us/library/aa164754.aspx) - 所以您实际上不会看到任何性能优势。如果有的话,使用'Long'会更有效,因为这个值没有被转换。 –
好的,好点。它可以复制和粘贴大量信息,并根据一系列IF THEN语句重新排列它。它适用于小数据集,但有时在较大的数据集上失效(尽管通常仍然有效)。 – user1996971