我有一个表,该表的奇数和偶数列将具有不同的公式。我试图遍历表进行这些计算,但是问题是,即使我的代码不执行计算,它也要花很多时间。有人对我如何改进代码有建议吗?这是到目前为止我得到的:
Dim tbl As ListObject
Dim tRows As Long
Dim tCols As Long
Dim i As Long
Dim i2 As Long
Dim even As Boolean
Set tbl = ActiveSheet.ListObjects("Table1")
With tbl.DataBodyRange
tRows = .Rows.Count
tCols = .Columns.Count
End With
'Start performing calculations
For i = 2 To tCols
If i Mod 2 = 0 Then
even = True
Else
even = False
End If
For i2 = 2 To tRows + 1
If even Then
'Formula for even columns
Cells(i2, i) = "Even"
Else
'Formula for odd columns
Cells(i2, i) = "Odd"
End If
Next i2
Next i
答案 0 :(得分:2)
想象以下数据:
然后运行以下代码:
Sub Test()
Dim tbl As ListObject: Set tbl = Sheet1.ListObjects("Table1")
tbl.DataBodyRange.FormulaR1C1 = "=IF(ISODD(COLUMN()),TRUE,FALSE)"
End Sub
具有以下结果:
请注意:
TRUE
公式替换我公式的ODD
部分。FALSE
公式替换我公式的EVEN
部分。Sheet1
对CodeName
的显式单元格引用。所以相应地更改无论列数或行数如何,整个.DataBodyRange
均已根据公式填充。