【问题标题】:Excel VBA not completing my code before next line [duplicate]Excel VBA没有在下一行之前完成我的代码[重复]
【发布时间】:2020-08-05 17:22:13
【问题描述】:

您好,我在 Excel 表中有以下 VBA。

Private Sub Workbook_Open()

    Application.EnableEvents = True
    
    Worksheets("BudgetInput").Unprotect Password:="password"
    Worksheets("BudgetInput").Range("G3:G150").Locked = True
    
    MsgBox "Sheet is now UnProtected"
   
    ActiveWorkbook.Connections("Query - MediaSubMedia").Refresh
    ActiveSheet.CircleInvalid
    ActiveWorkbook.Connections("Query - Media").Refresh
    ActiveWorkbook.Connections("Query - BudgetData").Refresh
    ActiveWorkbook.Connections("Query - TeamClients").Refresh
    ActiveWorkbook.Connections("Query - BaseVersionBudget").Refresh
    ActiveWorkbook.Connections("Query - F_Client_Grouping").Refresh
    ActiveWorkbook.Connections("Query - CurrVersionBudget").Refresh 
    MsgBox "Refresh Complete"
    
    Worksheets("BudgetInput").Range("G3:G150").Locked = False
    Worksheets("BudgetInput").Protect Password:="password"
    MsgBox "Sheet is now Protected"
End Sub

我有消息框来告诉每个部分何时完成。但是当我收到最后一条消息时,“工作表现在受保护”我收到以下消息。

您尝试更改的单元格或图表位于受保护的工作表上。要进行更改,请取消保护工作表。

在我保护我的工作表之前,刷新似乎没有完成。有没有办法确保我的刷新完成,然后运行代码来保护我的工作表。??

亲切的问候

罗伯

【问题讨论】:

标签: excel vba


【解决方案1】:

在 msgbox "刷新完成" 之前使用此命令 -Application.Wait("0.010") 添加等待时间(例如这里为 10 秒),以便宏获得适当的刷新时间。希望这对你有用。

【讨论】:

    猜你喜欢
    • 2016-12-06
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多