宏冻结字
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
我有一个非常基本的宏,如下所示:
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