Documents.open影响宏功能吗?

时间:2019-07-19 02:25:01

标签: vba ms-word

我在Word中创建了一个简单的菜单,该菜单打开了许多内置了各种宏的Word文件。通过菜单打开某些宏时,它们的功能正常(例如,在Private Sub Document_Open上显示的表格),但其他代码(忽略有关在无宏的环境中保存的警告的代码)将被忽略。

似乎也发生了其他问题,例如有关Word“无法触发事件”的调试错误,但仅在通过菜单打开文件时才发生。菜单所做的只是使用Documents.Open并打开文件。

当用户打开不带菜单的文件时,不会发生任何问题(关于在无宏的环境中保存的警告,关于触发事件的错误)。

任何帮助将不胜感激!我希望不必为了可用性而完全废弃菜单,因为菜单中有很多文件可以用作索引。

以下代码:

    If ComboBox1.Text = "- Full title page" Then
    Documents.Open ("A:/Workgroup Documents/Folder 1/templates/name of file.docm")
    End If

打开的文档中的代码( ThisDocument 模块):

 Private WithEvents App As Word.Application

 Option Explicit 

 Dim sDocName As String 
 Dim kcsval As String 

  Private Sub Document_Open() 
  frmFooters.Show 
  Set App = Word.Application 
  CATform.Show 
  On Error Resume Next 
  Documents("J:\Workgroup Documents\Edited Transcript\templates\menu.docm").Close SaveChanges:=wdDoNotSaveChanges
  FixSaveError 
  End Sub 

然后是一些表单,以及处理保存错误的模块和类模块。模块:

 Option Explicit 

 Dim MyClass As New Class1 

 Sub FixSaveError() 
 Set MyClass.App = Word.Application 
 End Sub

Class模块( Class1 ):

Public WithEvents App As Word.Application

Private Sub App_DocumentBeforeSave(ByVal Doc As Document, _
  SaveAsUI As Boolean, Cancel As Boolean)

Application.DisplayAlerts = wdAlertsNone
ActiveDocument.Save
Application.DisplayAlerts = wdAlertsAll
End Sub

当从docm中另存为docx时,模块和类模块的作用完全是为了消除有关在无宏环境中进行保存的警告消息。

Document_Open上打开的表单如果到达的话效果很好(“错误触发事件”错误有时会阻止它到达那里,但仅在某些情况下且仅在某些计算机上-仅 (使用菜单打开文件)。

0 个答案:

没有答案