【问题标题】:can't set countifs formula to cell with macro vba excel无法使用宏 vba excel 将 countifs 公式设置为单元格
【发布时间】:2020-09-23 06:24:07
【问题描述】:

我需要编写一个宏,将 countifs 公式输入到单元格中

我的错误是什么?

Dim ReferSheet As String
ReferSheet = ActiveSheet.Name

ActiveCell.Offset(RowOffSet:=0, ColumnOffset:=1).Select
ActiveCell.Formula = "=Application.WorksheetFunction.CountIfs(Worksheets(ReferSheet).Range("D8:D1103"), " >= " & Worksheets("Display").Range("C9"), Worksheets(ReferSheet).Range("D8:D1103"), " <= " & Worksheets("Display").Range("H9"), Worksheets(ReferSheet).Range("L8:L1103"), " > " & 0)"

【问题讨论】:

  • 一般来说,对于要从 VBA 写入工作表的公式:您可以先在工作表中写入公式,然后使用宏记录器查看语法在 VBA 中的外观(开始记录> 使用公式转到单元格 > F2(或单击单元格)> 输入 > 停止录制

标签: excel excel-formula vba


【解决方案1】:

尝试以下方法:

  1. 我构建了一个中间字符串,并使用debug.print 作为检查字符串以确保它是您想要的方法。
  2. 一旦你确定你有你想要的,你可以去掉中间字符串和debug.print语句,直接在ActiveCell.Formula的赋值中使用方程

代码...

Sub t1()
Dim ReferSheet As String
Dim formulaStr As String

    ReferSheet = ActiveSheet.Name

    ActiveCell.Offset(RowOffSet:=0, ColumnOffset:=1).Select
    formulaStr = "=CountIfs($D$8:$D$1103," & """>=""" & " & $C$9," & "$D$8:$D$1103," & _
                     """<=""" & " & $H$9," & "$L$8:$L$1103," & """>0""" & ")"
    Debug.Print formulaStr
    ActiveCell.Formula = formulaStr
End Sub

结果...

=COUNTIFS($D$8:$D$1103,">=" & $C$9,$D$8:$D$1103,"<=" & $H$9,$L$8:$L$1103,">0")

【讨论】:

  • 干得好。约翰,请注意他在需要“双引号”时如何使用双“双引号”。他还将“ReferSheet”连接到公式中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 2017-04-18
相关资源
最近更新 更多