2016-05-11 29 views
0

我已經編程以下VBA代碼:價值細胞爲變量在選定的式

Sub test() 
Dim Variable As Variant 
Variable = "R2:R11" 
Sheet1.Select 
Range(Variable).Select 
End Sub 

此公式完美。現在我想替換變量的「R2:R11」部分,而是引用電子表格中的單元格(W12)。在這個小區我寫「R2:R11」,我改變了公式如下:

這導致了下面的代碼:

Sub test() 
Dim Variable As Variant 
Variable = Sheet1.Range("W12") 
Sheet1.Select 
Range(Variable).Select 
End Sub 

然而,這個公式我現在明白了錯誤1004.

你們有什麼解決方案,我怎麼可以使變量參考電子表格中的單元格,然後在選擇公式中使用它?

感謝:-)

+0

對我來說工作正常,但我不確定我會使用該方法。 – Jeeped

+0

你試過了嗎?Variable = Sheet1.Range(「W12」)。Value' – DDuffy

+1

如果你的w12單元格包含Range如「R2:R11」(不含引號),它將正常工作。如果w12包含字符串,如Hello或數字,如23,那麼您將得到錯誤1004 – skkakkar

回答

1

您需要正確聲明變量並訪問Range對象的實際.Value屬性。

Sub test() 
Dim Variable As String 
Variable = Sheet1.Range("W12").Value 
Sheet1.Select 
Range(Variable).Select 
End Sub 

這也可以寫成:

Sub test() 
Sheet1.Activate 
Range([W12]).Activate 
End Sub 

.Value性質的註記 - 如果你不寫這個值通常會無論如何分配,因爲它的默認屬性範圍對象。這就是說有些情況下,情況並非如此,因此總是最好的做法是明確說明您需要價值。

+0

即使你使用漂亮的代碼,如果OP沒有確保像R2:R11這樣的W12單元格中的適當數據,他很可能會得到1004錯誤。 – skkakkar

+0

根據我的「測試」(確實有很多..)我認爲OP的問題_has_成爲單元格內容中實際鍵入的雙引號。如果你輸入它們,錯誤1004會被任一代碼拋出(使用'Variant'或'String'類型的變量) – user3598756

+0

@skakkar:看起來我們今天是「同步的」! – user3598756

1

任何幫助,您最有可能在W12細胞,即用雙引號該小區太 類型"R2:R11"您只需要鍵入R1:R12

而且你可以簡單的代碼

Sub test() 
    Sheet1.Range(Sheet1.Range("W12")).Select 
End Sub 
+0

,如果這些雙引號是問題,那麼在我輸入時@skkakkar解決了它 - >給他信用! – user3598756