为什么不能使用字符串来引用UBound中的数组?
例如,如果我有一个名为"Banks“的数组,那么只有这样编写代码时,UBound才能工作
UBound(Banks)如果我有了这个,那就行不通了:
String = "Banks"
UBound(String)有什么解决办法吗?
也许这将有助于更具体地说明我正在努力实现的目标。
我希望用尽可能少的代码行动态计算几个数组的UBound。
考虑到我有几家银行要分析,每一家银行都有几个账户,我们的想法是通过这样做动态地计算每个银行的UBound:
'Banks
Dim Banks(1 To 5) As Variant
Banks(1) = "GS"
Banks(2) = "BAML"
...
Banks(5) = "Citi"
'Bank Accounts
Dim GS(1 to 15) As Variant
GS(1) = "Cash account"
GS(2) = "Repo account"
...
GS(15) = "Equities account"
Dim BAML(1 to 20) As Variant
BAML(1) = "Prime account"
BAML(2) = "Current account"
...
BAML(20) = "FX account"
Dim Banks_Total, Banks_Count as Integer
Dim Bank As String
Dim Account_Total as Integer
Banks_Total = UBound(Banks)
For Banks_Count = 1 to Banks_Total
Bank = Banks(Bank_Count)
Account_Total = UBound(Bank) 最后一行是我的窃听器所在。但如果我写的是Ubound(GS),那就完全没问题了。为什么!?
发布于 2020-12-13 08:12:20
下面是一个基本的例子:
Dim Banks As Object,k, num, tot
set Banks = createobject("scripting.dictionary")
Banks.Add "GS", Array("Cash", "Repo")
Banks.Add "BAML", Array("Equities","Prime","Current")
For Each k in Banks
num = UBound(Banks(k)) + 1 'zero-based array
Debug.Print k, num
tot = tot + num
Next khttps://stackoverflow.com/questions/65267904
复制相似问题