Arrays Excel VBA-我应该使用多维数组还是选择案例结构来优化性能?
我有大约450000个单元格,其中一列包含数据。我一直在为一列使用selectcase结构来确定另一列的输出。但我注意到它可能会在每个单元格上迭代,从而导致更长的处理时间。我应该改用多维数组吗 以下是一个例子:Arrays Excel VBA-我应该使用多维数组还是选择案例结构来优化性能?,arrays,excel,vba,multidimensional-array,Arrays,Excel,Vba,Multidimensional Array,我有大约450000个单元格,其中一列包含数据。我一直在为一列使用selectcase结构来确定另一列的输出。但我注意到它可能会在每个单元格上迭代,从而导致更长的处理时间。我应该改用多维数组吗 以下是一个例子: Dim rng As Range, cl As Range Set rng = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row) For Each cl In rng Dim outCell2 As Rang
Dim rng As Range, cl As Range
Set rng = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
For Each cl In rng
Dim outCell2 As Range
Set outCell2 = cl.Offset(0, 55)
Select Case Trim(cl.Text)
Case "671518779618"
outcell1` = "beyueuynemui"
Case "671518779618"
outcell1` = "beyueuynemui"
Case "671518779618"
outcell1` = "beyueuynemui"
End Select
我假设在这一切的结尾应该有下一个语句,outcell1`应该是outcell2。尽管如此,它当然会在定义范围内的每个单元格上迭代,这正是
For Each
循环的目的。这就引出了我的观点,除了速度慢之外,你的代码到底有什么问题?为什么你认为多维数组是解决方案?如果这是实际工作的代码,你的问题可能会问得更好。你真的想看每个单元格吗?谢谢你的输入。虽然我需要将代码的终止阶段放在最后,但我的代码实际上仍在工作。我先做数学计算,最后做其他事情。它大大减缓了事情的发展。你真是太棒了!我手头有大量的时间,与此无关:)
Dim ar as Variant
Dim i as Long
ar = rng
For i = 1 to UBound(ar,1)
Select Case Trim(ar(i, 1))
Case ...
MyWorksheet.Cells(i, 55) = "beyueuynemui"
.....
End Select
Next