Я хотел бы показать пользовательскую форму, но позволить пользователю просматривать рабочие книги и рабочие таблицы.Я знаю, что могу скрыть UF, но я бы предпочел оставить UF.Это возможно?Я знаю, что есть vbModeless
, но код продолжает выполняться, а это не то, что я хочу.
Мой код до сих пор выглядит примерно так:
Sub Test()
Dim Counter As Long
Dim wb As Workbook
Application.ScreenUpdating = False
'-------main code
If Counter <> 0 Then
frmTest.Show
End If
Unload Me
For Each wb In Application.Workbooks
If wb.Name Like "Report*" Then wb.Close SaveChanges:=True
Next wb
Application.ScreenUpdating = True
End Sub
Я мог бы изменить оператор if на
If ErrorCount > 0 Then
frmTest.Show vbModeless
Else
Call SaveWorkbooks
End If
Application.ScreenUpdating = True
End Sub
И создать еще одну подпрограмму:
Sub SaveWorkbooks()
Dim wb As Workbook
Unload frmTest
For Each wb In Application.Workbooks
If wb.Name Like "Report*" Then wb.Close SaveChanges:=True
Next wb
End Sub
Полагаю, это работает, но
- Это хорошая практика, чтобы разделить ваш код таким образом?
- Что, если это произошло в середине моей основной подпрограммы?Это сделало бы 1) еще хуже.
Есть ли более элегантное решение