Excel 将自动vba代码更改为手动启动

Excel 将自动vba代码更改为手动启动,excel,vba,Excel,Vba,我有一个vba代码,每次数据更新时它都会自动启动并运行 Function CM(r As Range, c As Range, d As Range) As Integer Dim lR As Long CM = 0 For lR = d.Rows.Count To 2 Step -1 If Application.CountIf(d.Rows(lR), r) > 0 And Application.CountIf(d.Rows(lR - 1),

我有一个vba代码,每次数据更新时它都会自动启动并运行

Function CM(r As Range, c As Range, d As Range) As Integer
    Dim lR As Long

    CM = 0

    For lR = d.Rows.Count To 2 Step -1
        If Application.CountIf(d.Rows(lR), r) > 0 And Application.CountIf(d.Rows(lR - 1), c) > 0 Then CM = CM + 1
    Next lR
End Function
是否可以通过F8手动启动,选择宏并启动它?我不知道为什么会这样做。谢谢

我写这篇文章作为回答的唯一原因是向你们展示:

您可以从即时窗口调用函数来测试其输出。这是一个非常强大的工具,我建议您使用它来熟悉它。由于我必须支持一些Access应用程序,所以我一天中会多次使用它

要查看即时窗口,请点击Control+G

*添加了注释*如果需要测试功能,请记住输入参数是范围,因此每个传递值应如下所示:

 ThisWorkbook.Sheets("Yoursheetname").Range("yourrange")

我希望这对你有很大帮助

这是一个函数。函数在某个对象调用它时启动—从一个单元格或从另一个子或函数调用。如果您想调试它,只需在开头添加一个。如果不希望运行此函数,请从工作簿或代码中删除对此函数的引用。感谢您的帮助。我会试试你的建议。或者关闭工作簿中的计算,并在需要时手动运行计算。你知道它叫什么吗?如果它一直在运行,那么它就在一个事件侦听器上,比如工作表选择更改。可以将代码移动到按钮、宏、自定义功能区事件,也可以将其绑定到键,因此可以手动调用它。这取决于你想要什么。打开developer并搜索您的项目以使用CM,取出其调用代码并将其移动到手动方法。谢谢您的建议。我不知道这叫什么。我只有工作表上的代码。我不能说它是否在事件侦听器上。它不是一直在运行,一旦它在数据中运行,它就会停止,我只是无法控制它。谢谢道格的建议。