0

VBAでセルを範囲として指定したい。私は使用してみました:

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

ただし、これは範囲内の値を返すだけです。私が実際に欲しいのは range オブジェクトなので、たとえば range.Value = "Hello" を設定して操作できます

何か案は?

4

1 に答える 1

4

まず、コード内の変数の明示的な宣言を必須にすることを強くお勧めします。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.ValueValue名前付き範囲にはプロパティがありません。

于 2009-07-16T09:24:02.833 に答える