【发布时间】:2015-01-29 03:21:42
【问题描述】:
我最近一直想知道哪个在效率方面更好:使用多个 For 循环,还是一个包含许多操作的大循环?
我使用来自 SQL 数据库的 17 列中的 50k-100k 行。
现在,一个代码示例:
z = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To z
If Cells(i, 15) <> 0 Then Cells(i, 19) = 1 Else Cells(i, 19) = 0
Next i
For i = 2 To z
Cells(i, 20) = Val(Left(Cells(i, 2), 2))
Next i
For i = 2 To z
Select Case Cells(i, 18).Value
Case Is = 1
Cells(i, 29).Value = 1
Case Is = 2
Cells(i, 29).Value = 1.6
Case Is = 3
Cells(i, 29).Value = 2.8
End Select
Next i
For i = 2 To z
Cells(i, 30) = Val(Right(Cells(i, 14), 1))
Next i
For i = 2 To z
Cells(i, 31) = ((Cells(i, 18) + 1) * Cells(i, 16) * Cells(i, 17)) / 1000000
Cells(i, 31).NumberFormat = "0.00"
Next i
我的问题是:按列(每列单独的 For 循环)还是按行(一个包含每条记录的所有操作的大循环)执行这些操作更明智?
【问题讨论】: