2012-01-21 27 views
2

我有一個VBA(Excel 2010)系統,它涉及從列表框中選擇一個項目,然後以另一種形式顯示它。這是一個非常簡化的版本。第一次使用後,VBA Listbox變爲無響應

' 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 

列表框接受點擊,首先是事件(事件處理程序在上面給出)。事件處理程序的關鍵部分是:

  • 裝入第二種形式(以顯示詳細數據)
  • 傳遞第二種形式作爲用戶窗體參數的過程(LoadDataIntoForm2)
  • 隱藏主機形式( frmForm1)和示出第二形式(frmForm2)
  • 當第二形式的處理退出點擊,該代碼看起來是這樣的:

「frmForm2代碼模塊的一部分

sub cmdExit_Click 

me.hide 

end sub 

第一次圓它工作正常 - 但是當我回到frmForm1(在lstListBox_Click過程的末端),即使該表格的其餘部分是可操作的,列表框仍然固執地響應。

我設法把這個抽象成一個小演示系統,如果這會有所幫助的話 - 那裏會看到同樣的行爲。 (這是普通的.xls文件,但似乎不容易作爲上傳)

有沒有人見過這個?有沒有人有任何想法,我可以如何以我想要的方式工作?

感謝,

託尼

+0

+1那麼形成的問題 –

+0

我從來沒見過它,但它做,如果你掛接到'_Change'事件是一回事嗎? –

回答

2

.Show方法的默認是使形式modal。明確將其設置爲無模式:

Sub lstListbox_Click 
... 
Me.Show vbModeless 

End Sub 
相關問題