Как VBA выбрать кнопку на пользовательской форме в другой книге? - PullRequest
0 голосов
/ 25 мая 2018

Итак, я создаю тысячи рабочих книг, используя VBA из главной рабочей книги.У меня есть шаблон, в который Vba вставляет.Эта шаблонная рабочая книга имеет функцию VBA

BeforeSave

, в которой пользователь должен заполнить пользовательскую форму для регистрации изменений, которые пользователь решил внести во время этого сеанса.

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 из основной рабочей книги и вставляет в Row4 на листе 2 в рабочей тетради, а затем сохраняет ..

wkbDest.SaveAs Filename:=Path & FileName2 & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled

Вот проблема, потому что VBA BeforeSave запускается, открываяФорма пользователя.Как я могу заставить этот Master VBA выбрать CommandButton1 в пользовательской форме, которая теперь открыта и приостанавливает макрос?

, а затем закрывается ..

wkbDest.Close

1 Ответ

0 голосов
/ 25 мая 2018

Исходя из моего комментария, я предлагаю отключить события перед сохранением

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

И код, вызванный событием BeforeSave, не запустится.

...