我似乎无法找到解释如何在VBA中创建哈希表或关联数组的文档.它甚至可能吗?
你可以链接到一篇文章或更好地发布代码吗?
我想为excel创建"案例"公式来模拟选择案例行为(带有多个参数,否则可选).如果A1和A2是excel单元格,那么这就是目标:
A1 Case: A2 Formula: A2 Result
5 cases({A1>5,"greather than 5"}, {A1<5, "less than 5"},{else,"equal to 5"}) equal to 5
Hi cases({A1="","there is nothing"},{else,A1}) Hi
1024 cases({5<A1<=10,10},{11<=A1<100,100},{A1>100,1000}) 1000
12 cases({A1=1 to 9, "digit"}, {A1=11|22|33|44|55|66|77|88|99, "11 multiple"}) (empty)
60 cases({A1=1 to 49|51 to 99,"not 50"}) not 50
Run Code Online (Sandbox Code Playgroud)
如果可以,它必须接受excel公式或vba代码,才能在获取案例之前对单元格进行操作,ig
cases({len(A1)<7, "too short"},{else,"good length"})
Run Code Online (Sandbox Code Playgroud)
如果可以,它必须接受或更多的细胞来评估,ig
如果A2 = A3 = A4 = A5 = 1且A1 = 2,A6 ="1",A7 ="2"
cases(A1!=A2|A3|A4|A5, A6}, {else,A7}) will produce "two"
Run Code Online (Sandbox Code Playgroud)
顺便说一下,| 意思是,或者!=意味着不同
有帮助吗?
我很感激.
我能写的是这个:
Public Function arr(ParamArray args()) …Run Code Online (Sandbox Code Playgroud) 我有一个理论问题,如果你在这里建议我会很感激.
说,我们有这两段代码.第一:
For Each cell In rng1
collectionOfValues.Add (cell.Value)
Next
For Each cell In rng2
collectionOfAddresses.Add (cell.Address)
Next
For i = 1 To collectionOfAddresses.Count
Range(collectionOfAddresses.Item(i)) = collectionOfValues.Item(i)
Next i
Run Code Online (Sandbox Code Playgroud)
在这里,我们将一个范围的地址添加到某个集合,将另一个范围的值添加到第二个集合,然后使用这些值填充这些地址上的单元格.
这是第二个代码,它是相同的:
For i = 1 To rng1.Rows.Count
For j = 1 To rng1.Columns.Count
rng2.Cells(i, j) = rng1.Cells(i, j)
Next j
Next i
Run Code Online (Sandbox Code Playgroud)
所以,问题是 - 两种情况下执行的时间是什么时候?我的意思是,很明显第二种情况是O(n ^ 2)(为了使我们更容易假设范围是正方形).
第一个怎么样?For Each被认为是嵌套循环吗?
如果是这样,是否意味着第一个代码的时间是O(n ^ 2)+ O(n ^ 2)+ O(n ^ 2)= 3*O(n ^ 2),这与第二个代码时间?
一般来说,这两个代码是否与第一个代码在创建集合时需要额外内存的事实不同?
非常感谢提前.