以下のコードでは、 の値がkk1 = "1"、kk2 = "2"、kk3 = "3"、kk4 = "4" 。実現することができる選択のケースなステートメントを使用することによりforループ内の実行時変数の値を読み取る
代わりKK1、KK2、KK3及びKK4の私はメッセージボックスが一、二、三と四を表示したいFor i = 1 To 4
vari_value = "kk" & i
MsgBox vari_value
Next
以下のコードでは、 の値がkk1 = "1"、kk2 = "2"、kk3 = "3"、kk4 = "4" 。実現することができる選択のケースなステートメントを使用することによりforループ内の実行時変数の値を読み取る
代わりKK1、KK2、KK3及びKK4の私はメッセージボックスが一、二、三と四を表示したいFor i = 1 To 4
vari_value = "kk" & i
MsgBox vari_value
Next
、ループ以下のコードを参照してください。 4から1から、 "KK2"、 "KK3"、 "KK4"
Public Sub run()
For i = 1 To 4
vari_value = "kk" & i
Select Case vari_value
Case Is = "kk1"
MsgBox "One"
Case Is = "kk2"
MsgBox "Two"
Case Is = "kk3"
MsgBox "Three"
Case Is = "kk4"
MsgBox "Four"
End Select
'MsgBox vari_value
Next
End Sub
希望値 "KK1" で、これはあなたの問題を解決します。
実際に@Nishit、KK1、KK2、KK3、KK4はサンプル値を持つフォーム変数です - "One"、 "Two"、 "Three"& "Four" 私は欲しい固定値でないメッセージボックスに表示されるKK1、KK2、KK3、KK4の値 – user7850661
あなたが持つ変数の数は、コード化可能な場合はこれを使用できます。そうでなければ、vbaはVBAで変数名を動的に構築できません。あなたが必要とするものをより具体的に教えてください。 –
KK1、KK2、KK3をダイナミック変数として定義したい場合、それはできません。単純な理由から、LHSまたはRHSまたはその両方を使用するには静的でなければなりません。 あなたの場合、vari_valueの値が1番目のintanceのKK1 = "One"である場合、 "i"の値が増分されるとすぐにKK1がKK2に変更されるので、KK1は失われます –
ここでは、「kk1 = "one"」などと指定されていません。 – Gustav
[参照変数名のエクセルvba]の可能な複製(http://stackoverflow.com/questions/18336006/reference-variable-name -in-excel-vba) – Andre
これはできません。代わりに配列を使用してください。 – Andre