自动填充公式

时间:2018-01-29 11:28:13

标签: excel vba excel-vba

我想创建一个Excel宏,可以在不同大小的列上扩展我的公式。

我目前有2个数据透视表,在每个数据库的末尾我创建了一列连接值。 例如:   - 表1:Cols D:I,连接col J.    公式的第一个单元格是J12(=CONCATENATE(D12;E12;F12;G12))   - 表2:Cols O:T,连接col U.    具有公式的第一个单元格是U12(与之前相同)

我希望能够在刷新将删除cols J和U的表后按下按钮,并根据表格再次填充公式'的范围内。

我创建了类似的试用代码 Range("J12:M" & LastRow).Formula = "=CONCATENATE ... " 但它没有用。

1 个答案:

答案 0 :(得分:1)

如果你想在给定的范围内通过VBA加入一个连接的公式,可以使用这样的东西:

Option Explicit

Public Sub TestMe()

    Dim lastRow As Long
    lastRow = 42
    Range("J12:M" & lastRow).Formula = "=CONCATENATE(INDIRECT(""D""&ROW())," & _
                                                    "INDIRECT(""E""&ROW()))"

End Sub

有一些棘手的部分:

  • 使用ROW()获取行;
  • 使用.Formula强制使用Excel公式的英文版本;
  • 使用""来逃避单";
  • 使用INDIRECT()获取单元格的值;