【问题标题】:VBA - Maintain cell formula integrityVBA - 保持单元格公式的完整性
【发布时间】:2020-01-30 01:49:10
【问题描述】:

我很难将Indirect 公式输入到我的代码中。我知道我可以使用FormulaR1C1,但是这会在单元格中创建一个相当静态的公式,并且在我运行我的代码后添加行时不太友好。我希望我的代码类似于单元格内公式=SUM(L99:INDIRECT("R[-1]C",0)),它位于单元格L106 中。

以下是我的代码以及我创建上述公式的尝试。谢谢!

   Dim s1 As Excel.Worksheet: Set s1 = ActiveWorkbook.Worksheets(ThisWorkbook.Sheets.Count)

   With s1

        'What the current formula is
        .Cells(rwCnt, abRng.Column).Offset(4, 6).FormulaR1C1 = "=sum(R[0]C[-5],R[0]C[-2])"
        .Cells(rwCnt, abRng.Column).Offset(11, 6).FormulaR1C1 = "=Sum(R[-7]C[0]:R[-1]C[0])"

        'My attempt
        .Cells(rwCnt, abRng.Column).Offset(11, 6).Formula = "=sum(" & .Cells(rwCnt, abRng.Column).Offset(4, 6) _
            & ":INDIRECT(""R[-1]C"", 0))"

   End With

【问题讨论】:

  • .Cells(rwCnt, abRng.Column).Offset(4, 6) 我认为这将返回单元格中的值,您需要它的地址,例如单元格(1,1)将返回一个值,其中单元格(1,1 ).address 将返回 $A$1
  • 我喜欢简单的答案!成功了!

标签: vba excel-formula excel-r1c1-notation


【解决方案1】:

.Cells(rwCnt, abRng.Column).Offset(4, 6) 我认为这将返回单元格中的值,您需要它的地址

例如cells(1,1) 将返回一个值,而cells(1,1).address 将返回$A$1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 2015-10-09
    • 2014-05-25
    • 1970-01-01
    相关资源
    最近更新 更多