VBAでセルを範囲として指定したい。私は使用してみました:
Dim range
range = Sheet("sheet").Range("A1")
ただし、これは範囲内の値を返すだけです。私が実際に欲しいのは range オブジェクトなので、たとえば range.Value = "Hello" を設定して操作できます
何か案は?
まず、コード内の変数の明示的な宣言を必須にすることを強くお勧めします。Tools - Optionsに移動し、Editorタブで"Require variable Declaration" をチェックするか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
名前付き範囲にはプロパティがありません。