Function 是否有excel vb的功能可以连续检查工作表?

Function 是否有excel vb的功能可以连续检查工作表?,function,excel,spreadsheet,conditional-formatting,vba,Function,Excel,Spreadsheet,Conditional Formatting,Vba,我有一个带有各种选项的组合框。对于每个选项,都会根据值设置某些单元格的格式 由于这些值每隔几秒钟就改变一次,程序需要不断检查以确定是否满足条件。有人知道程序每隔几秒钟检查一次工作表的方法吗?根据您的需要,三种不同的方法中的任何一种都可能满足您的需要 当用户更改工作表时,Excel工作表_Change事件将触发,不包括由于重新计算而对单元格公式值的更改,但包括按代码进行的更改。VBA代码通常如下所示: Sub Worksheet_Change(ByVal Target As Range)

我有一个带有各种选项的组合框。对于每个选项,都会根据值设置某些单元格的格式


由于这些值每隔几秒钟就改变一次,程序需要不断检查以确定是否满足条件。有人知道程序每隔几秒钟检查一次工作表的方法吗?

根据您的需要,三种不同的方法中的任何一种都可能满足您的需要

当用户更改工作表时,Excel工作表_Change事件将触发,不包括由于重新计算而对单元格公式值的更改,但包括按代码进行的更改。VBA代码通常如下所示:

    Sub Worksheet_Change(ByVal Target As Range)
       Application.EnableEvents = False
       ' <test or set scope of action of the macro>
       ' <do something>
       Application.EnableEvents = True
    End Sub
    Sub Worksheet_Calculate()
       Application.EnableEvents = False
       ' <do something>
       Applicaton.EnableEvents = True
    End Sub
子工作表\u更改(ByVal目标作为范围)
Application.EnableEvents=False
' 
' 
Application.EnableEvents=True
端接头
目标参数是内置的,始终引用已更改并触发事件的单元格。代码必须放在工作表模块中(右键单击工作表选项卡并选择查看代码最容易访问),而不是标准模块

重新计算工作表(包括自动重新计算)后,会发生“工作表计算”事件。代码如下所示:

    Sub Worksheet_Change(ByVal Target As Range)
       Application.EnableEvents = False
       ' <test or set scope of action of the macro>
       ' <do something>
       Application.EnableEvents = True
    End Sub
    Sub Worksheet_Calculate()
       Application.EnableEvents = False
       ' <do something>
       Applicaton.EnableEvents = True
    End Sub
子工作表_计算()
Application.EnableEvents=False
' 
Applicaton.EnableEvents=True
端接头
请注意,此事件不提供目标,也就是说,它触发所有重新计算的单元格,而不是单个单元格。如果代码不强制重新计算,则不需要禁用然后重新启用事件。如果希望代码重新计算选定的单元格,可以将计算设置为手动(Application.calculation=xlManual),然后在退出过程(Application.calculation=xlAutomatic)时将其重置为自动。与工作表更改事件一样,您的代码必须放在工作表模块中


最后,您可以设置一个计时器,使用Excel的Application.OnTime事件或Windows计时器定期重新运行代码。您的过程必须包含启动和停止计时器的代码。有关使用OnTime事件的示例,请参见。有关使用Windows计时器(以及Application.OnTime事件)的说明,请参阅Chip Pearson的评论。

根据您的需要,三种不同方法中的任何一种都可能满足您的需要

当用户更改工作表时,Excel工作表_Change事件将触发,不包括由于重新计算而对单元格公式值的更改,但包括按代码进行的更改。VBA代码通常如下所示:

    Sub Worksheet_Change(ByVal Target As Range)
       Application.EnableEvents = False
       ' <test or set scope of action of the macro>
       ' <do something>
       Application.EnableEvents = True
    End Sub
    Sub Worksheet_Calculate()
       Application.EnableEvents = False
       ' <do something>
       Applicaton.EnableEvents = True
    End Sub
子工作表\u更改(ByVal目标作为范围)
Application.EnableEvents=False
' 
' 
Application.EnableEvents=True
端接头
目标参数是内置的,始终引用已更改并触发事件的单元格。代码必须放在工作表模块中(右键单击工作表选项卡并选择查看代码最容易访问),而不是标准模块

重新计算工作表(包括自动重新计算)后,会发生“工作表计算”事件。代码如下所示:

    Sub Worksheet_Change(ByVal Target As Range)
       Application.EnableEvents = False
       ' <test or set scope of action of the macro>
       ' <do something>
       Application.EnableEvents = True
    End Sub
    Sub Worksheet_Calculate()
       Application.EnableEvents = False
       ' <do something>
       Applicaton.EnableEvents = True
    End Sub
子工作表_计算()
Application.EnableEvents=False
' 
Applicaton.EnableEvents=True
端接头
请注意,此事件不提供目标,也就是说,它触发所有重新计算的单元格,而不是单个单元格。如果代码不强制重新计算,则不需要禁用然后重新启用事件。如果希望代码重新计算选定的单元格,可以将计算设置为手动(Application.calculation=xlManual),然后在退出过程(Application.calculation=xlAutomatic)时将其重置为自动。与工作表更改事件一样,您的代码必须放在工作表模块中


最后,您可以设置一个计时器,使用Excel的Application.OnTime事件或Windows计时器定期重新运行代码。您的过程必须包含启动和停止计时器的代码。有关使用OnTime事件的示例,请参见此SO。有关使用Windows计时器(以及Application.OnTime事件)的说明,请参阅Chip Pearson的评论。

我认为组合框驱动单元格更改?是的。一切正常。但是单元格中的值会随着数据的变化而变化。我认为组合框会驱动单元格的变化?是的。一切正常。但是单元格中的值会随着数据的变化而变化。