2009-07-16 104 views
0

我想指向一個單元格作爲VBA中的一個範圍。我試過使用:VBA點變量範圍

  Dim range 
     range = Sheet("sheet").Range("A1") 

但是,這只是返回範圍內的值。我真正想要的是範圍對象,所以我可以操縱它,例如通過設置range.Value =「你好」

任何想法?

回答

4

首先,我強烈建議您在代碼中強制顯式聲明變量。轉至工具 - 選項,在編輯器選項卡檢查「需要變量聲明」或將Option Explicit放入所有腳本的第一行。

二,我認爲你的代碼有一個小的錯字,應該是Sheets.("sheet")

要回答您的問題,請使用range = Sheets("sheet").Range("A1")您正在分配值變量而不是對象。因此,範圍對象的默認變量是隱式分配的,即value。爲了分配一個對象,使用Set關鍵字。我完整的示例代碼如下所示:

Option Explicit 

Public Sub Test() 
    Dim RangeObject As range 
    Set RangeObject = Sheets("Sheet1").range("A1")  
    RangeObject.Value = "MyTestString" 
End Sub 

這應該把文字「MyTestString」在單元格A1。

編輯:如果您使用的是命名範圍,請嘗試RangeObject.Value2而不是RangeObject.Value。命名範圍沒有Value屬性。

+2

使用「需要變量聲明」不會追溯影響任何現有的模塊 - 它只是控制Excel是否會自動將Option Explicit放置在任何* new *模塊的頂部。所以,即使你設置了這個選項,你仍然需要通過任何現有的模塊並添加Option Explicit。 – 2009-07-16 09:37:52