2017-04-11 1 views
-2

아래 코드에서 ... kk1 = "one", kk2 = "Two", kk3 = "Three"및 kk4 = "Four" .for 루프에서 런타임 변수 값을 읽음

은 내가 MSGBOX이 하나, 둘, 셋 대신 KK1, KK2, KK3 및 KK4

For i = 1 To 4 
    vari_value = "kk" & i 
    MsgBox vari_value 
Next 
+0

아무데도 'kk1 = "one"'등이 지정되어 있지 않습니다 ... – Gustav

+0

[Excel vba에서 참조 변수 이름]의 가능한 복제본 (http://stackoverflow.com/questions/18336006/reference-variable-name -in-excel-vba) – Andre

+0

불가능합니다. 대신 배열을 사용하십시오. – Andre

답변

1

네 달성 할 수있다 선택의 경우 한 Statment를 사용하여 표시 루프 아래의 코드를 참조 할 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"와 함께이 문제를 해결합니다.

+0

사실 @Nishit, KK1, KK2, KK3 및 KK4는 샘플 값이 "1", "2", "3"및 "4"인 양식 변수입니다. 고정 된 값이 아닌 메시지 상자에 표시 될 KK1, KK2, KK3 및 KK4의 값 – user7850661

+0

얼마나 많은 변수가 있는지, 코드 할 수 있으면 이것을 사용할 수 있습니다. 그렇지 않으면 VBA는 VBA에서 변수 이름을 동적으로 작성할 수 없습니다. 당신이 필요로하는 것에 대해 좀 더 자세하게 설명해 주실 수 있습니까? –

+0

다이나믹 변수로 KK1, KK2, KK3을 정의하려면 수행 할 수 없습니다. LHS 또는 RHS 또는 둘 모두가 정적으로 사용되어야한다는 간단한 이유 때문입니다. 당신의 경우, vari_value의 값이 1 차 intance에서 KK1 = "One"일 때, "i"의 값이 vari_value의 값으로 증가하자마자 KK1이 KK2로 변경되어 KK1이 손실됩니다. –

관련 문제