[英]Vba Excel Is it possible to select a value out of userform that is showing parts of a table?
[英]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.