0
我想指向一個單元格作爲VBA中的一個範圍。我試過使用:VBA點變量範圍
Dim range
range = Sheet("sheet").Range("A1")
但是,這只是返回範圍內的值。我真正想要的是範圍對象,所以我可以操縱它,例如通過設置range.Value =「你好」
任何想法?
我想指向一個單元格作爲VBA中的一個範圍。我試過使用:VBA點變量範圍
Dim range
range = Sheet("sheet").Range("A1")
但是,這只是返回範圍內的值。我真正想要的是範圍對象,所以我可以操縱它,例如通過設置range.Value =「你好」
任何想法?
首先,我強烈建議您在代碼中強制顯式聲明變量。轉至工具 - 選項,在編輯器選項卡檢查「需要變量聲明」或將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
屬性。
使用「需要變量聲明」不會追溯影響任何現有的模塊 - 它只是控制Excel是否會自動將Option Explicit放置在任何* new *模塊的頂部。所以,即使你設置了這個選項,你仍然需要通過任何現有的模塊並添加Option Explicit。 – 2009-07-16 09:37:52