使用按钮执行VBA代码并将输出设置为0的问题

时间:2018-03-13 08:25:44

标签: vba excel-vba excel

我是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

请求您协助解决此问题。提前谢谢。

1 个答案:

答案 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

因为那是你的代码