如何让VBA在另一个工作簿中的用户窗体上选择一个按钮?

时间:2018-05-25 16:06:23

标签: excel-vba select userform commandbutton before-save

因此,我使用主工作簿中的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

1 个答案:

答案 0 :(得分:1)

根据我的评论,我建议您在保存之前禁用事件

Application.EnableEvents = False
wkbDest.SaveAs Filename:=Path & FileName2 & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
Application.EnableEvents = True

由BeforeSave事件触发的代码将无法运行。