【问题标题】:Insert formula with Variable VBA使用变量 VBA 插入公式
【发布时间】:2017-07-23 02:24:57
【问题描述】:

我正在尝试在 Sheet2 的 C 列中插入一个公式。然而,行号取决于 pasterow 的值。公式中的范围应为 G[lastrow]:NS[lastrow],其中 lastrow 属于 Sheet1 的最后一行。

这是我的代码:

Sub try()

With Sheets("Sheet2")

pasterow = .Cells(.rows.Count, "B").End(xlUp).Offset(1, 0).Row

With Sheets("Sheet1")
    lastRow = ActiveWorkbook.Worksheets("Sheet1").Range("F" & .rows.Count).End(xlUp).Row

    ActiveWorkbook.Worksheets("Sheet2").Range("C" & pasterow).formula = _
    "=COUNTIF(Sheet1!G & lastRow & :NS & lastRow & , ""VL"" )"

End With
End With

End Sub

如果有人能指出我的代码有什么问题,我将不胜感激。谢谢!

【问题讨论】:

    标签: vba excel excel-formula


    【解决方案1】:

    VBA 变量在您的公式字符串中。比较:

    ActiveWorkbook.Worksheets("Sheet2").Range("C" & pasterow).formula = "=COUNTIF(Sheet1!G" & lastrow & ":NS" & lastrow & ", ""VL"" )"
    

    【讨论】:

    • 它仍然没有修复。它说“应用程序定义的或对象定义的错误”。我更新了我的帖子并包含了整个代码。
    • 你要放什么公式(Excel表格)?
    • 如果这仍然是您的整个代码,那么您没有进行我建议的更改以从字符串中删除变量。做出改变后,我在 Sheet2 的 C 列末尾得到了 =COUNTIF(Sheet1!G21:NS21, "VL" );没有它,我会收到您描述的应用程序错误。
    • 是的。制作了两张虚拟数据(十列,二十行)并将您的代码粘贴到一个新模块中。
    【解决方案2】:

    试试这个..

    ActiveWorkbook.Worksheets("Sheet2").Range("C" & pasterow).FormulaR1C1 = "=COUNTIF(Sheet1!C[4]:C[380],""VL"")"
    

    这可能是您期望实现的目标!

     ActiveWorkbook.Worksheets("Sheet2").Range("C" & pasterow).Value = "=COUNTIF(Sheet1!G" & lastRow & ":NS" & lastRow & ", ""VL"" )"
    

    【讨论】:

      【解决方案3】:

      尝试:

      ActiveWorkbook.Worksheets("Sheet2").Range("C" & pasterow).formula = _  
      "=COUNTIF(Sheet1!R" & lastrow & "C7:R" & lastrow & "C383,""VL"")"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-18
        • 1970-01-01
        • 1970-01-01
        • 2017-07-19
        • 2021-12-09
        • 2018-01-27
        相关资源
        最近更新 更多