因此,我使用主工作簿中的VBA创建了数千个工作簿。我有一个Vba粘贴的模板。此模板工作簿具有VBA
BeforeSave
用户必须填写Userform以记录用户决定在该会话期间进行的更改。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ws As Worksheet
Set ws = Sheets("EDITS")
Dim tbl As ListObject
Set tbl = ws.ListObjects("Table1")
Dim newrow As ListRow
Set newrow = tbl.ListRows.Add
SavePrompt.Show
With newrow
.Range(1) = Now
.Range(2) = SavePrompt.TextBox1.Text
End With
End Sub
我现在的问题是我运行的VBA是在主工作簿中。 (只是要清楚)它打开模板,从主工作簿复制Row5,在模板工作簿上的工作表2上粘贴到Row4,然后保存..
wkbDest.SaveAs Filename:=Path & FileName2 & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
这是问题,因为BeforeSave VBA运行,打开Userform。如何让这个Master VBA选择现在打开并暂停宏的Userform上的CommandButton1?
然后关闭..
wkbDest.Close
答案 0 :(得分:1)
根据我的评论,我建议您在保存之前禁用事件
Application.EnableEvents = False
wkbDest.SaveAs Filename:=Path & FileName2 & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
Application.EnableEvents = True
由BeforeSave事件触发的代码将无法运行。