我有一個非常漫長而笨重的代碼,但通常會崩潰並給出無響應消息。我發現,解決此問題的一種方法是將變量聲明爲整數,而不是長整數,如果我知道它們不會超過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