UserForm:停止执行代码,但让用户浏览工作簿吗?

时间:2019-05-01 20:39:21

标签: excel vba userform

我想显示一个用户窗体,但允许用户浏览工作簿和工作表。我知道我可以隐藏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. 将代码拆分成这样的好习惯吗?
  2. 如果这发生在我主子的中间怎么办?这将使1)更糟。

有没有更优雅的解决方案

0 个答案:

没有答案