excel - .FormulaR1C1 = Application.WorksheetFunction.CountIfs 参数不起作用
问题描述
我试图通过查看前 2 列并将它们与同一 Wokbook 中的另一个表进行比较来使用 countifs 语句。参考 RrC1、RC1 或其他任何东西都不起作用。结果我只得到“0”。如果我输入常量,它就可以工作。我确信我的论点 2、4、6 是问题所在。我就是想不通为什么!
Sub DataBase()
'Set my tables
Dim Answers As ListObject
Dim Table As ListObject
Set Answers = Worksheets("quantitativ").ListObjects("DataQuant")
Set Table = Worksheets("Database").ListObjects("Tabelle7")
'Set my Ranges for filters (Organizational level, Location, Function...)
Set OrgRange = Answers.ListColumns(1).Range
Set LocRange = Answers.ListColumns(2).Range
'Set Ranges for Answers to Questions (Scale)
Set Q1 = Answers.ListColumns(5).Range
Dim r As Long 'Row variables for For-Loop
For r = 5 To Table.DataBodyRange.Rows.Count + 4
'Q1
Cells(r, 6).FormulaR1C1 = _
Application.WorksheetFunction.CountIfs(Q1, RrC5, OrgRange, RrC1, LocRange, RrC2)
Next r
End Sub
解决方案
Cells(r, 6).FormulaR1C1 = _
Application.WorksheetFunction.CountIfs(Q1, RrC5, OrgRange, RrC1, LocRange, RrC2)
这真是一团糟。您正在尝试使用工作表函数的结果加载公式。
如果您想将公式加载到单元格中,那么我会这样做:
Cells(r, 6).Formula = "=CountIfs(" & Q1.Address & ", " & _
Cells(r, 5).Address & ", " & OrgRange.Address & ", " & _
Cells(r, 1).Address & ", " & LocRange.Address & ", " & _
Cells(r, 2).Address & ")"
甚至:
Cells(r, 6).Formula = .Formula = "=CountIfs(" & _
Q1.Address & ", E" & r & ", " & _
OrgRange.Address & ", A" & r & ", " & _
LocRange.Address & ", B" & r & ")"
但是,如果您想要评估公式并且只是将结果转储到单元格中..
Cells(r, 6).Value = Application.WorksheetFunction.CountIfs(Q1, _
Cells(R, 5), OrgRange, Cells(R, 1), LocRange, Cells(R, 2))
请记住,尽管所有这些选项Cells(..
都不是完全合格的。
将所有更改为.Cells(..
会使这变得更好,将很多包装在一个
With WorkSheet("DESTINATION_SHEET")
...
...
End With
非常可取。
推荐阅读
- reactjs - 过滤器操作不呈现用户界面
- python - 运行 Django-Viewflow 更新节点?
- sql - 在 Where 子句中放置一个 case when 语句
- xcode - XCode 不断挂起
- c++ - 由于“没有合适的 UserTokenPolicy”,连接到 OpcUA-Server 失败
- node.js - 缓冲问题 | 即使mongodb关闭,猫鼬也会响应
- python - 基于条件的 DataFrame 中的新列
- c - 使用 getchar 时出现分段错误
- javascript - 在子项中更改后,动态链接到组件的道具变得未定义
- excel - 连接到受保护的访问 accdb 文件会引发“密码错误”