首页 > 解决方案 > 我可以使用 VBA 单击取消按钮吗?

问题描述

每当我单击关闭按钮关闭 Excel 窗口时,都会出现此消息框。消息是“这将取消挂起的数据刷新。继续吗?” 有一个持续的刷新过程会持续将近一个小时,但如果我单击“取消”按钮,一切都会在不到 2 分钟的时间内发生。有没有办法用VBA点击取消按钮?

我真的需要弹出窗口来显示,所以我不需要打开Application.DisplayAlert = False。任何帮助将不胜感激。

我正在尝试使用 VBA 刷新工作簿中的 Power 查询。这些查询来自文件夹中的 csv 文件的源数据。我一直在使用两种有严重问题的方法

  1. 第一种方法在移动到下一行代码之前没有完成。这会导致工作簿在保存之前未完全更新。

    ActiveWorkbook.RefreshAll
    
  2. 第二个代码似乎是第一个代码的流行解决方案,但它持续了将近一个小时。此代码一个接一个地刷新每个查询。注意:“在后台启用刷新”已关闭。我花了数周时间寻找信息以使这种方法更快地工作,但没有解决方案:

    For Each objConnection In ActiveWorkbook.Connections
        'Get current background-refresh value
        bBackground = objConnection.OLEDBConnection.BackgroundQuery
    
        'Temporarily disable background-refresh
        objConnection.OLEDBConnection.BackgroundQuery = False
    
        If Left(objConnection.Name, 8) = "Query - " Then
            Cname = objConnection.Name
            'Show the Query name that's being updated in the Status bar
            Application.StatusBar = "Refreshing ... " & Cname
        End If
    
        'Refresh this connection
        objConnection.Refresh
    
        'Set background-refresh value back to original value
        'objConnection.OLEDBConnection.BackgroundQuery = bBackground
    Next
    

    我现在让它更快的唯一方法是在ActiveWorkbook.RefreshAll运行时手动单击 Excel 窗口中的关闭按钮,然后在弹出窗口中单击取消。

我需要知道是否可以使用 VBA 单击取消按钮。

标签: excelvba

解决方案


推荐阅读