VBA是不支援dynamic variable name,但是可以用dictionary物件來模擬的。
Dim dict
Set dict = CreateObject("Scripting.Dictionary")
dict("A1") = "09:00"
dict("A2") = "10:00"
Dim B, C As String
B = "A1"
C = dict(B)
Debug.Print "C = " & C ' result "C = 09:00"
dict("A1") = "20:00"
C = dict(B)
Debug.Print "C = " & C ' result "C = 20:00"
是不是EXCEL中的VBA想要這樣的結果?
A1 = "09:00"
A2 = "10:00"
B = "A1"
C = Range(B)
如果A1儲存格的格式是文字
那麼 C 就是 "09:00"
如果A1儲存格格式沒有特別指定的話是通用
那麼 09:00 的內容會被EXCEL解釋為自定hh:mm
實際內容是數值 0.375
也就是 0.375天
換算成小時 0.375 * 24小時 = 9小時
就是代表 9點 (09:00)