在表上加快计算速度

时间:2019-11-01 12:47:23

标签: excel vba

我有一个表,该表的奇数和偶数列将具有不同的公式。我试图遍历表进行这些计算,但是问题是,即使我的代码不执行计算,它也要花很多时间。有人对我如何改进代码有建议吗?这是到目前为止我得到的:

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

1 个答案:

答案 0 :(得分:2)

想象以下数据:

enter image description here

然后运行以下代码:

Sub Test()

Dim tbl As ListObject: Set tbl = Sheet1.ListObjects("Table1")
tbl.DataBodyRange.FormulaR1C1 = "=IF(ISODD(COLUMN()),TRUE,FALSE)"

End Sub

具有以下结果:

enter image description here

请注意:

  • 您必须用您的TRUE公式替换我公式的ODD部分。
  • 您必须用您的FALSE公式替换我公式的EVEN部分。
  • 我已使用Sheet1CodeName的显式单元格引用。所以相应地更改

无论列数或行数如何,整个.DataBodyRange均已根据公式填充。

相关问题