Board logo

標題: [發問] list 無法設定 [打印本頁]

作者: prince120101    時間: 2014-12-29 17:48     標題: list 無法設定

請問各位大大
下方最下面 ListBox3.List = opop.Value<===程式執行時會出現 無法設定LIST 屬性
想請問是哪邊沒有定義到嗎??
動作
要將 搜尋到的值放到  ListBox3
  1. .
  2. .
  3. .
  4. If ListBox1.Value = "RPR-018" Then Worksheets("RPR-018").Activate
  5. If ListBox1.Value = "NFPR-010" Then Worksheets("NFPR-010").Activate

  6. Dim opop As Range
  7. Dim NON As String
  8. Dim jjo As Long

  9. NON = ListBox1.Value
  10. jjo = ListBox2.Value
  11. Set opop = Workbooks("TEST.xlsm").Worksheets(NON).Columns("d").Cells.Find(What:=jjo, SearchDirection:=xlNext)

  12. If opop Is Nothing Then MsgBox "找不到!": Exit Sub

  13. If Not opop Is Nothing Then
  14. ListBox3.List = opop.Value
  15. End If
複製代碼

作者: GBKEE    時間: 2014-12-30 07:46

本帖最後由 GBKEE 於 2014-12-30 08:04 編輯

回復 1# prince120101
  1. Private Sub ListBox2_Click()
  2.     Dim opop As Range, jjo As Long
  3.     Sheets(ListBox1.Value).Activate
  4.     jjo = ListBox2.Value
  5.     Set opop = Workbooks("TEST.xlsm").Worksheets(ListBox1.Value).Columns("d").Cells.Find(What:=jjo, SearchDirection:=xlNext)
  6.     With ListBox3
  7.         .Clear       '清除 控制項(清單方塊或下拉式清單方塊)的內容
  8.         If opop Is Nothing Then
  9.             MsgBox "找不到!"
  10.         ElseIf Not opop Is Nothing Then
  11.             i = 0
  12.             Do While opop.Offset(i) Like jjo & "*"  '往下符合 jjo* 的字串
  13.                 .AddItem    '清單方塊中加入一個項目
  14.                 .List(.ListCount - 1, 0) = opop.Offset(i)
  15.                 i = i + 1
  16.             Loop
  17.             '單獨一個儲存格無法指定到控制項的List
  18.             'ListBox3.List = opop.Resize(2).Value '///可以試試看///
  19.             '可以指定到控制項的 .Value
  20.             ListBox3.Value = opop.Value
  21.         End If
  22.     End With
  23. End Sub
複製代碼

作者: prince120101    時間: 2014-12-30 10:56

回復 2# GBKEE

謝謝 GBKEE的回覆

剛測試後 可以顯示在ListBox3的清單方塊中

有幾個問題想問一下

1.
  1. With ListBox3
  2.         .Clear   
複製代碼
很多程序 也都會加入這樣清除 清單或下拉式清單 的指令,但剛把.clear 註解之後 發現效果一樣
是跟.value & .additem 有關係嗎?? 還是只是一個習慣都會這樣加??

2.
  1. Do While opop.Offset(i) Like jjo & "*"
複製代碼
加上"*"號表示此關鍵字前後可能含有零或多個字元,剛把 & "*" 註解之後
執行時 會在 ListBox3.Value = opop.Value 出現 "無法設定Value屬性",所以是"往下搜尋符合的字串"時候都需要加這"*"??

3.
  1. '單獨一個儲存格無法指定到控制項的List
  2.   ' ListBox3.List = opop.Resize(2).Value '///可以試試看///
  3.   '可以指定到控制項的 .Value
  4.    ListBox3.Value = opop.Value
複製代碼
Resize(數值) 測試後 更改數值的話 那在 ListBox3 會隨著數值而去抓取儲存格的個數 如輸入5 它就去抓取5個儲存格的樣子 是這樣嗎??
但我不太懂你註解的意思 @@??

4.程式在執行時 當遇到空白儲存格<圖一>它就只會抓取空白儲存格以上的值而已<圖二> 其它值不會抓取到??




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)