2017-04-18 6 views
0

私はコンボフォームからデータを取得するためにループを作っています。VBAのカウンターを使用

Analysis_ 1は、最初の変数 Analysis_1_ComboBが画面から最初のComboBoxである

Analysis_1 = Me.Analysis_1_ComboB.Column(0) 
Analysis_2 = Me.Analysis_2_ComboB.Column(0) 
Analysis_3 = Me.Analysis_3_ComboB.Column(0) 

などなど、単一の線として

、私がループで動作するようにしたいん取り組んでいる

for counter = 1 to 9 
    Analysis_&Counter = Me.Analysis_&Counter&_ComboB.Column(0) 
next counter 

残念ながら、これは動作していない、誰が私をここで助けることができますか?

+0

- STRING'と同様、おそらく '薄暗い分析(1〜9) 'Analysis(counter)= ...'を使います。 – YowE3K

+0

@ YowE3K怠け者ではない、これを答えとして書くと、あなたは10Kマークに近い –

答えて

2

残念ながら、変数名を動的に指定することはできません。通常、さまざまなオブジェクトにアクセスできます(特に名前にアクセスできる場合)。

変数を配列にするのが最も良い方法です。

Dim Analysis(1 To 9) As String 
For counter = 1 To 9 
    Analysis(counter) = Me.Controls("Analysis_" & counter & "_ComboB").Column(0) 
Next counter 
MsgBox "Value from Analysis_5_ComboB is " & Analysis(5) 

(このコードは、あなたのコンボボックスは、したがって、フォームのControlsコレクションを経由して、動的にアクセスできるユーザーフォーム上にあるとすることを前提としています。)あなたは、配列を使用する必要があります

関連する問題