Private Sub CommandButton2_Click()
Dim thiswb As Workbook
Set thiswb = ActiveWorkbook
Call EnterDataToSS(thiswb)
Me.Hide
BeamNoFind.Show vbModal
End Sub
被调用的代码基本上将一些值放入电子表格中。 任何剩余值都会填充到BeamNoFind Userform上的LISTBOX1。
然后在BeamNoFind用户表单上有一个按钮和LISTBOX1。当您从listbox1中选择项目并单击该按钮时,将打开第三个用户窗体(VBMODELESS)以允许放置该值。
下面是显示第三个用户表单的按钮代码。
Private Sub CommandButton2_Click()
Dim Selected_Length As String
Dim Selected_Name As String
Dim Selected_Length_index As Integer
Selected_Length_index = BeamNoFind.ListBox1.ListIndex
With BeamNoFind.ListBox1
If .ListIndex > -1 Then
Selected_Name = .Column(0, .ListIndex)
Selected_Length = .Column(1, .ListIndex)
CellInputForm.beam_length_label.Caption = Selected_Name & " [ " & Selected_Length & " ] "
BeamNoFind.Hide
'ChngDataSrc.Hide
'Unload ChngDataSrc
CellInputForm.Show vbModeless
Else
MsgBox "No selection", vbExclamation, "Oops!"
End If
End With
End Sub
奇怪的是,当我单击按钮以显示我的无模式用户窗体时,要将数据放在单元格中,初始宏将被触发,使您进入第一个用户窗体。 我有注释代码'ChngDataSrc.Hide'和'卸载ChngDataSrc'是我试图阻止用户窗体显示我不想要它。 当我卸载表单时,我得到一个错误而不是表单显示,错误是与初始宏:
Sub get_scheduling_data(control As IRibbonControl)
ChngDataSrc.Show
End Sub
它与vbModeless有关,因为如果我将“vbModeless”从“CellInputForm.Show vbModeless”行替换为“vbModal”,它会正确显示,没有不需要的形式(ChngDataSrc)。但随后表格的功能(选择单元格,按下确定按钮,放置在所选单元格中的值)消失了。
答案 0 :(得分:0)
我找到了一个解决方案,但它不是一个真正的解决方案, 我放了
ChngDataSrc.Hide在CellInputForm用户窗体的Activate子中。 因此,当运行CellInputForm.show vbModeless,并且ChngDataSrc用户窗体不必要地弹出时,它会再次被隐藏。
我想知道为什么它首先显示出来,但这个修复现在似乎有效。