0

我在excel中的一些代码发生了一些奇怪的事情

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”和“Unload ChngDataSrc”是我试图阻止用户窗体在我不想显示时显示。当我卸载表单时,我得到一个错误而不是显示表单,错误与初始宏有关:

Sub get_scheduling_data(control As IRibbonControl)
ChngDataSrc.Show

End Sub

它与 vbModeless 有关,因为如果我将“CellInputForm.Show vbModeless”行中的“vbModeless”替换为“vbModal”,它会正确显示,而不会出现不需要的形式(ChngDataSrc)。但是随后表单的功能(选择单元格,按确定按钮,放置在所选单元格中的值)消失了。

4

1 回答 1

0

我找到了一个解决方案,但它不是一个真正的解决方案,我放置

ChngDataSrc.Hide 在 CellInputForm 用户窗体的 Activate 子中。因此,当 CellInputForm.show vbModeless 运行时,ChngDataSrc 用户窗体意外弹出,然后再次隐藏。

我宁愿首先找出为什么它会被显示,但这个修复现在似乎有效。

于 2014-07-03T06:02:51.987 回答