2014-09-30 91 views
-1

我想在excel vba中定義一個超出特定範圍的行的變量,並且出於某種原因,當我嘗試運行它時,我在定義中不斷收到對象所需的編譯器錯誤。我是vba的新手,我很困惑這個錯誤。任何幫助將不勝感激。VBA excel範圍內的結尾

Set endRng2 = rng2.Rows.Count + 2 
+0

如果你提供了更多的代碼,它會更容易幫助你。請包括delcarations,以及最少量的代碼,以便我們解釋或調試它。 – 2014-09-30 21:21:32

回答

1

我假設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或類似的東西...

+0

對不起,我忘了在我的問題中包含聲明行,但我最初聲明它是一個整數,它仍然給我一個編譯器錯誤。 – user4095610 2014-09-30 20:10:19

+1

刪除Set關鍵字(僅用於對象),並且我建議將endRng2聲明爲Long,而不是整數 – 2014-09-30 20:25:59

+0

不應該給整數編譯錯誤,但可能會導致運行時不匹配或溢出錯誤... – 2014-09-30 21:20:08

0

rng2可能未申報/未分配。

如果是這樣,您將得到一個424對象所需的錯誤。

確保rng2是有效的Range變量。