Dbqwyban12 2024-05-27 09:05 采纳率: 25%
浏览 34

VBA满足条件则停止运行的代码

表格内有A1和B1,其中A1单元格是固定值,B1单元格包含公式可无限刷新,运行宏无限刷新B1,当A1=B1时则停止运行宏,怎样实现这个功能!

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2024-05-27 09:05
    关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    解决方案:

    1. 定义一个循环,其中用Do循环B1单元格的值,直到A1和B1的值相等时跳出循环。

    2. 在循环中增加判断条件,如果A1=B1,则使用Exit Sub来退出整个代码。

    3. 在代码中使用Application.Wait方法能够在每次循环的时间间隔内停顿,避免CPU过度占用。

    代码如下:

    Sub StopWhenEqual()
        Do While Range("A1").Value <> Range("B1").Value
            If Range("A1").Value = Range("B1").Value Then
                Exit Sub
            Else
                Range("B1").Calculate
            End If
            Application.Wait (Now + TimeValue("0:00:01"))
        Loop
    End Sub
    

    注意:

    1. 如果B1单元格的公式中间需要使用Application.Volatile方法进行刷新,则需要在循环中添加Application.Volatile(True)方法。

    2. 如果循环中时间间隔设置太短,会导致CPU过度占用,电脑变慢,建议时间间隔2秒左右。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月27日