VBA

2016-05-04 17 views
0

に2つの変数を使用してセルの範囲を選択するためにはどのように使用したい:VBA

Set rng1 = .Range("A1") 
    Set rng2 = .Range("C3") 

をこのlinkで説明したように。 OPは、セルA1とセルC3を2つの別個の1セル範囲として有していた。彼はその範囲を変更する方法を尋ねたので、それらの間のすべてのセルも新しいより大きな範囲に含まれるようにしました。私の問題は似ていますが、新しいシナリオごとにセル範囲が変わります。例1セルD1の開始日とセルY1の終了日、新しい範囲はD1:Y1です。セルB1に例#2の開始日、セルAZ1に終了日、新しい範囲はB1:AZ1です。静的な範囲の代わりに変数を使用できるように、上記のコードをどのように変更できますか?

+1

条件付き書式を使用して、VBAを使用せずにこれを行うことができますか? – trincot

+0

はい、この考え方には、私のモデルに他のアプリケーションがあります。たとえば、一連の条件用の式を書き、その後に別の条件セットを書くなどです。 – lindqmx1

+0

また、VBAがなくても、セル内の式で可能であるようです。 – trincot

答えて

0

質問を正しく理解しているかどうかわかりません。だから、次を見てください、これはあなたの「問題」を解決するかどうか私に教えて:基本的に

Option Explicit 

Public Sub tmpTest() 

Dim rng1 As Range 
Dim rng2 As Range 
Dim rngComposite As Range 

With ThisWorkbook.Worksheets(1) 
    Set rng1 = .Range("A1") 
    Set rng2 = .Range("C3") 
    Set rngComposite = .Range(rng1, rng2) 
    Debug.Print rngComposite.Address 
End With 

End Sub 

、範囲.Range(rng1, rng2)は、基礎となる範囲のように動的であり、rng1またはrng2変更するたびに変更されます。

+0

ラルフ、ありがとう。コード内でコードを実行しました。あなたの例では、rng1は常にセルA1ではありませんか?代わりにA1に可変セルアドレスを設定するにはどうすればよいですか?私が走る各シナリオの範囲が変わります。 – lindqmx1

+0

私は上記のコードを誤解していますか? .Range( "C3")は常にセル参照C3です。 C3を前のステップで宣言できる変数にするにはどうしたらいいですか?ありがとう。 – lindqmx1

+0

'rng2'は' C3'以外の変数です。ですから、私は 'rng2'を' C3'に設定しています。しかし、良いことは、**変数**について考えると、それらを変更することができます。あなたはそれを変更することができます 'D1'またはあなたが欲しいものを参照してください。それでも、あなたが望む範囲は関係ありません。あなたのコードのある時点で、あなたが望むもの( 'C3'や' D1'など)を書く必要があります。 – Ralph