Board logo

標題: [發問] 變數中的數字再用另一個變數表示的方法 [打印本頁]

作者: sweetkitty    時間: 2012-8-14 17:16     標題: 變數中的數字再用另一個變數表示的方法

如下的VBA,我希望出現三個msgbox分別顯示  AA , BB , CC
但是我想要把 a1 , a2 , a3 中的數字部分用 For 迴圈的 i = 1 To 3 來取代
請問 MsgBox後面的那一串,該如何表示呢?
感激不盡!!
  1. Sub test()
  2. a1 = "AA"
  3. a2 = "BB"
  4. a3 = "CC"

  5. For i = 1 To 3
  6. MsgBox ?????????????
  7. Next
  8. End Sub
複製代碼

作者: GBKEE    時間: 2012-8-14 20:20

回復 1# sweetkitty
用陣列
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Ar(1 To 3), i As Integer
  4.     Ar(1) = "AA"
  5.     Ar(2) = "BB"
  6.     Ar(3) = "CC"
  7.     For i = 1 To 3
  8.         MsgBox Ar(i)
  9.     Next
  10. End Sub
複製代碼

作者: sweetkitty    時間: 2012-8-15 11:28

回復 2# GBKEE


好高級的東西喔 @@  從來沒使用過這種方法
感激不盡!  學到新東西了 ^^
作者: sweetkitty    時間: 2012-8-15 14:32

回復 2# GBKEE

不好意思~ 更進一步的請問:
如果這個陣列的大小不是定數,而是要在前面用其他方式算出這個值,我把它設成變數k代進陣列中
他會出現針對"Dim Ar(1 To k)" 中的 "k","必須是常數運算式"的視窗
請問該怎麼處理? 感謝 ^^

Sub Ex()
    k=3
    Dim Ar(1 To k), i As Integer
    Ar(1) = "AA"
    Ar(2) = "BB"
    Ar(3) = "CC"
    For i = 1 To 3
        MsgBox Ar(i)
    Next
End Sub

作者: GBKEE    時間: 2012-8-15 15:13

回復 4# sweetkitty
  1. Option Explicit
  2. Sub Ex()
  3.     Dim i As Integer, k As Integer
  4.     k = 2
  5.     ReDim Ar(0 To k)   'ReDim :重新宣告陣列
  6.     Ar(0) = "AA"
  7.     Ar(1) = "BB"
  8.     Ar(2) = "CC"
  9.     For i = 0 To k
  10.         MsgBox Ar(i)
  11.     Next
  12. End Sub
複製代碼

作者: sweetkitty    時間: 2012-8-15 17:15

回復 5# GBKEE

感謝!! 雖然搞不懂為什麼這樣就可以了 QQ
程式真是神奇的東西阿




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)