Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA列表框在首次使用后变得无响应_Vba_Listbox - Fatal编程技术网

VBA列表框在首次使用后变得无响应

VBA列表框在首次使用后变得无响应,vba,listbox,Vba,Listbox,我有一个VBA(Excel 2010)系统,它涉及从列表框中选择一个项目,然后以另一种形式显示它。下面是一个非常简化的版本 ' Part of frmForm1 code module sub lstListbox_Click dim MyEvent as string dim i as integer i=me.lstListbox.listindex MyEvent=me.lstlistbox.list(i) ' Now show the item in the second for

我有一个VBA(Excel 2010)系统,它涉及从列表框中选择一个项目,然后以另一种形式显示它。下面是一个非常简化的版本

' Part of frmForm1 code module
sub lstListbox_Click

dim MyEvent as string
dim i as integer

i=me.lstListbox.listindex
MyEvent=me.lstlistbox.list(i)

'  Now show the item in the second form

Load frmForm2
me.hide
ThisWorkbook.LoadDataIntoForm2 (frmForm2, MyEvent)
frmForm2.show

unload frmForm2
me.show

end sub
listbox接受单击,首先是事件(事件处理程序是上面的giver)。事件处理程序的关键部分包括:

  • 加载第二个表单(以显示详细信息数据)
  • 将第二个表单作为UserForm参数传递给过程(LoadDataIntoForm2)
  • 隐藏主机窗体(frmForm1)并显示第二个窗体(frmForm2)
  • 当第二个表单处理退出单击时,代码如下所示:
'frmForm2代码模块的一部分

sub cmdExit_Click

me.hide

end sub
第一次循环时,它工作正常-但是当我返回到frmForm1(在lstListBox_Click过程的末尾),即使表单的其余部分是可操作的,列表框仍然顽固地没有响应

如果有帮助的话,我已经设法将其抽象为一个小的演示系统——在那里可以看到相同的行为。(这是一个普通的.xls文件,但作为一个上传文件似乎不太容易接受)

以前有人见过这个吗?有没有人知道我该如何让它以我想要的方式工作

谢谢


Tony

默认的
.Show
方法是创建表单。显式将其设置为无模式:

Sub lstListbox_Click
...
Me.Show vbModeless

End Sub

我以前没有见过它,但是如果您挂接到
\u Change
事件,它会做同样的事情吗?