繁体   English   中英

Excel VBA 不显示用户表单

[英]Excel VBA not showing userform

我有一个 VBA 宏,它通过询问用户一系列问题来打开(让他们说出哪个打开的工作簿执行哪个功能)。 我有一系列 userform.show 命令如下:

  UserForm2.Show  ' select cost data file
  Set piersBook = ActiveWorkbook

  UserForm5.Show  ' select IRR file
  Set irrBook = ActiveWorkbook

  UserForm6.Show  ' select BC summary file
  Set bcSummary = ActiveWorkbook

(现在,在活动结束后,我意识到将它们放入一个用户表单会更简单)。

净效果是最后一个不显示。
经过一番研究,我将代码更改为:

  UserForm2.Show  ' select cost data file
  Set piersBook = ActiveWorkbook

  UserForm5.Show  ' select IRR file
  Set irrBook = ActiveWorkbook

  DoEvents

  UserForm6.Show  ' select BC summary file
  Set bcSummary = ActiveWorkbook

这在它恢复到原始问题之前进行了大约 5 或 6 次迭代。

我在用户表单初始化代码中放置了断点。 它们都被调用并且用户表单都可以工作(直到我再次删除断点)。

最后我开始删除有问题的用户表单:问题转移到下一个。 再一次,当它被删除时,到之前的那个。

用户表单的代码是相同的:

Private Sub ListBox1_Click()
  Workbooks(ListBox1.Value).Activate
  Unload Me
End Sub

Private Sub UserForm_Initialize()

  Dim wb As Workbook
  For Each wb In Workbooks
    ListBox1.AddItem wb.Name
  Next wb
End Sub

有什么想法吗? 目前我正在对不理想的输入进行硬编码。 非常感谢。

仅使用UserForm2 ,然后:

  • 更改您的UserForm2代码如下

    Private Sub ListBox1_Click() With Me If ListBox1.ListIndex <> -1 Then .Tag = .ListBox1.Value .Hide Else MsgBox "You must select a workbook" End If End With End Sub Private Sub UserForm_Initialize() Dim wb As Workbook For Each wb In Workbooks ListBox1.AddItem wb.Name Next wb End Sub
  • 更改您的“主要”代码如下

    Dim piersBook As Workbook, irrBook As Workbook, bcSummary As Workbook With UserForm2 .Caption = "select cost data file" .Show ' select cost data file Set piersBook = Workbooks(.Tag) .Caption = "select IRR file" .Show ' select cost data file Set irrBook = Workbooks(.Tag) .Caption = "select BC summary file" .Show ' select BC summary file Set bcSummary = Workbooks(.Tag) End With Unload UserForm2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM