我想在excel vba中定義一個超出特定範圍的行的變量,並且出於某種原因,當我嘗試運行它時,我在定義中不斷收到對象所需的編譯器錯誤。我是vba的新手,我很困惑這個錯誤。任何幫助將不勝感激。VBA excel範圍內的結尾
Set endRng2 = rng2.Rows.Count + 2
我想在excel vba中定義一個超出特定範圍的行的變量,並且出於某種原因,當我嘗試運行它時,我在定義中不斷收到對象所需的編譯器錯誤。我是vba的新手,我很困惑這個錯誤。任何幫助將不勝感激。VBA excel範圍內的結尾
Set endRng2 = rng2.Rows.Count + 2
我假設endRng2
是一個Range對象。像你宣稱它爲Dim endRng2 as Range
。不幸的是,rng2.Rows.Count + 2
將返回一個整數(即rng2 + 2中的行數)。您無法將範圍對象設置爲整數,因此VBA正在大驚小怪。
要麼將endRng2
的類型更改爲與Dim endRng2 as Integer
的整數,要麼將rng2.Rows.Count + 2
更改爲返回範圍而不是數字。舉例來說,如果你想endRng2是整個行是從最後一個單元格2行向下rng2
然後用Set endRng2 = rng2.Offset(0,rng2.Rows.Count+2).EntireRow
或類似的東西...
對不起,我忘了在我的問題中包含聲明行,但我最初聲明它是一個整數,它仍然給我一個編譯器錯誤。 – user4095610 2014-09-30 20:10:19
刪除Set關鍵字(僅用於對象),並且我建議將endRng2聲明爲Long,而不是整數 – 2014-09-30 20:25:59
不應該給整數編譯錯誤,但可能會導致運行時不匹配或溢出錯誤... – 2014-09-30 21:20:08
rng2
可能未申報/未分配。
如果是這樣,您將得到一個424對象所需的錯誤。
確保rng2
是有效的Range變量。
如果你提供了更多的代碼,它會更容易幫助你。請包括delcarations,以及最少量的代碼,以便我們解釋或調試它。 – 2014-09-30 21:21:32