我是VBA的新手,非常热衷于更好地理解它。我使用countifs
问题1 - 当我调试时,我没有收到任何错误,而是输出为0
,即使我的输入文件如下所示。
但是,如果我在代码中复制粘贴关键字“演练”并执行它,我会得到正确的输出,即2
问题2 - 如果我为此宏指定一个按钮并运行,我会得到一个输出0
输入文件
Column A Column B
Walkthrough Not Started
Walkthrough Not Started
实际代码
Sub countif_test()
Dim type_of_test As Long
Dim Walk As Worksheet
Dim source As Worksheet
Set source = Worksheets("Archer Search Report")
Set Walk = Worksheets("SOX_Dashboard_Walkthrough_Stat")
type_of_test = Application.WorksheetFunction.CountIfs(Range("A2:A3"), "Interim", Range("B2:B3"), "Not Started")
Walk.Range("C2") = type_of_test
End Sub
请求您协助解决此问题。提前谢谢。
答案 0 :(得分:0)
当我调试时,我没有收到任何错误
因为您的代码是正确的
我输出为0,即使我的输入文件如下所示。 但是,如果我复制粘贴关键字'演练'在代码和 执行它,我会得到正确的输出,即2
您撰写的CountIFs
功能,实际上会检查“临时”功能。在单元格A2:A3和'未开始'在B2:B3。
由于未满足第一个条件,因此您将计为0
然而,使用'演练'在代码中代替Interim'将会
Application.WorksheetFunction.CountIfs(Range("A2:A3"), "Interim", Range("B2:B3"), "Not Started")
哪个会搜索'演练'在两行中找到的单元格A2:A3中,也满足第二条件。
因此,您将输出设为2
如果我为此宏指定一个按钮并运行,我会得到一个输出为0
因为那是你的代码