我有一組ActiveX控件和潛艇裝配在一起這樣的的名稱:更改的Excel的ActiveX列表框
- 用戶類型到一個ActiveX文本框,
- TextBox_Click觸發3級潛艇執行。
- 第一個子更新工作表上命名範圍的值;基於該更新後的值的表是Excel使用偏移函數創建
- 第二子抄表範圍在3和paste.values更新爲在片材上的範圍(以消除公式)
這裏的它在哪裏崩潰。
- 當我設置工作表時,我創建了一個ListBox(ListBox1)。上面#2中提到的三個潛艇中的第三個測試是否在工作表中存在ActiveX「ListBox1」。如果不是,則意圖是代碼將決定ListBox的調用方式(LB1或LB2或LB2等),將名稱更改爲「ListBox1」,並將上面的#4的表格粘貼到ListBox1中。然後,ListBox1_Click命令可以觸發一組要執行的唯一代碼。
現在我只是測試名稱ListBox1和ListBox2之間的切換。
這個想法是,當用戶輸入TextBox1時,例如ListBox1會在每次擊鍵時更新。所以輸入「g」,列表顯示20個名字,從數據庫表中的第一個「g」開始。然後輸入「ge」,列表顯示20個名字,從數據庫表格中的第一個「ge」開始等等。用戶點擊一個名字,ListBox1_click做一些獨特的事情。如果用戶在TextBox2中輸入,他們會在ListBox中看到不同的數據(我想將其重命名爲ListBox2),如果他們單擊一組唯一的代碼則由ListBox2_Click執行。
#5中的問題是我第一次嘗試執行時出現錯誤「對象不支持此屬性或方法」。第二次是好的。如果我在工作表上做了其他事情並回到它,我再次得到錯誤。
這裏是#5的代碼是在模塊:我不知道我在做什麼錯
Sub PutListInListBox()
Dim OBJ As Object
On Error Resume Next
Set OBJ = ActiveSheet.OLEObjects("ListBox1")
On Error GoTo 0
If OBJ Is Nothing Then
ActiveSheet.ListBox2.Name = "ListBox1"
End If
ActiveSheet.ListBox1.Clear
ActiveSheet.ListBox1.List = Sheets("Search Criteria Control").Range("G1:G21").Value
End Sub
任何幫助表示讚賞。
我希望我明確這一點。
更新後的代碼 我有一堆的ActiveX標籤和文本框,所以我用你建議搜索特定名稱的案例的第一種形式。我一直在閱讀它,看不到我在這裏有什麼問題。輸入TB5後,LB不更新。我回到設計模式,可以看到名稱仍然是ListBox2。
任何想法?
Private Sub TextBox5_Change()
Call UpdateValues(TextBox5.Value)
Call CopyTable
Dim OLEOBJ As OLEObject
For Each OLEOBJ In ActiveSheet.OLEObjects
Select Case OLEOBJ.Name
Case "ListBox1", "ListBox2", "ListBox3"
OLEOBJ.Name = "ListBox1"
OLEOBJ.ListFillRange = Sheets("Search Criteria Control").Range("G1:G21").Address(external:=True)
End Select
Exit For
Next
End Sub
你可以顯示其餘的代碼? – Davesexcel 2015-01-26 21:03:52
當然,上面加了。讓我知道你是否還有更多想看的東西。感謝您對此感興趣。 – mchac 2015-01-26 21:16:58
請注意,我正在測試兩個TB和兩個LB如何工作。 – mchac 2015-01-26 21:23:02