宏冻结字

Macro freezes word

我有一个非常基本的宏,如下所示:

Option Explicit

Sub ReplaceNumReviewers()
   Application.ScreenUpdating = False
   Dim objExcel As New Excel.Application
   Dim exWb As Excel.Workbook

   Set exWb = objExcel.Workbooks.Open("C:\Users\crouz\Desktop\data.xlsx")



   ThisDocument.numManager.Caption = exWb.Sheets("FeedbackData").Cells(7, 2)
   ThisDocument.numPeers.Caption = exWb.Sheets("FeedbackData").Cells(8, 2)
   ThisDocument.numDirectReports.Caption = exWb.Sheets("FeedbackData").Cells(9, 2)
   ThisDocument.numTotal.Caption = exWb.Sheets("FeedbackData").Cells(10, 2)

   exWb.Close
   Set exWb = Nothing

   Application.ScreenUpdating = True
End Sub

当我 运行 通过添加到快速访问工具栏的按钮时,它 运行 替换值然后冻结 word 文档。我可以毫无问题地使用其他应用程序,除了我必须通过进程管理器终止的 MS Word。

我对 VBA 和宏还很陌生,想知道是什么原因造成的?

在宏的末尾,您有

application.screenupdating=false  

这是打错了吗?如果不是,请将其更改为 True 以解冻 Word。

处理错误。

Sub DoSomething()
    On Error GoTo CleanFail
    Application.ScreenUpdating = False

    'your code here

CleanExit:
    Application.ScreenUpdating = True
    'rest of cleanup code here
    Exit Sub

CleanFail:
    'handle errors here
    Resume CleanExit
End Sub

这样你就可以确定 ScreenUpdating 总是设置回 True 无论是否发生运行时错误(这里可能就是这种情况)。

好的,我找到了解决问题的方法。

我不得不更换

exWb.Close

exWb.Close SaveChanges:=False

现在它不再挂了。 感谢大家的帮助,让我在调试器方面走上了正确的方向。

我在这里找到了答案:vba script hangs at Workbook.Close