返回列表 上一主題 發帖

[發問] 下拉式清單裡選擇"篩選不重複的資料"

[發問] 下拉式清單裡選擇"篩選不重複的資料"

請問我手邊有一筆資料
sheet1:
  A
1 ●
2 ●
3 ○
4 ○
5 ○
6 ※
7 ※
8 ※

今天我想要用個按鈕在sheet2,按下按鈕後會出現視窗,這視窗有下拉式清單,經過篩選後可以選擇A欄裡這三種不同資料

請問該怎麼下手比較好?

小弟目前在【建立按鈕】→【按下後show出視窗】→【?】

請指點方法,謝謝。

一連串精彩的問答,真是獲益良多

TOP

我也碰到類似的困難,真的順利的解決了 謝謝∼!

TOP

回復 30# lifedidi
  1. Option Explicit
  2. Private Sub TextBox1_Change()
  3.     計時
  4. End Sub
  5. Private Sub TextBox2_Change()
  6.     計時
  7. End Sub
  8. Private Sub 計時()
  9.     'TextBox3控制項 請改成Label控制項為佳
  10.     If IsDate(TextBox1) And IsDate(TextBox2) Then
  11.         TextBox3 = Format(CDate(TextBox2) - CDate(TextBox1), "HH:MM")
  12.         'Label1.Caption = Format(CDate(TextBox2) - CDate(TextBox1), "HH:MM")
  13.     Else
  14.         TextBox3 = ""
  15.       '  Label1.Caption = ""
  16.     End If
  17. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

GBKEE大大你好:

TextBox1及TextBox2是空格給使用者keyin的

TextBox3也是為時間格式 ex: TextBox1 key入 8:20
                                                        TextBox2 key入 11:55
                                                        TextBox3 顯示出 3:35
對照圖↓


請問第七列與第八、九列的功能是一樣的嗎?

" ' "不只有註解的功能,還有其他作用?

TOP

回復 28# lifedidi
  1. Option Explicit
  2. Private Sub UserForm_Initialize()
  3.     Dim A As Date
  4.     TextBox1.Value = "8:00"
  5.     TextBox2.Value = "12:00"
  6.     TextBox3 = Val(TextBox2) - Val(TextBox1)
  7.     'TextBox3 = Format(CDate(TextBox2) - CDate(TextBox1), "H:M")
  8.     'A = CDate(TextBox2) - CDate(TextBox1)
  9.     'TextBox3 = A
  10. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

請問大大:
有三個textbox分別是1、2和3
1和2是key時間用,3是把2-1
舉例:textbox1 key入 08:00
             textbox2 key入 12:00
             textbox3 自動顯示 4:00  (也就是2-1)
目前寫到

Private Sub UserForm_Initialize()

Text1.Value = Format( "HH:MM:SS")
Text2.Value = Format("HH:MM:SS")
TextBox3 = Val(TextBox2) - Val(TextBox1)

End Sub

請問哪裡有錯呢?請指導!感謝你!

TOP

哇賽!我了解了!謝謝大大!我繼續研究~

TOP

回復 25# lifedidi
  1. Sub Ex()
  2.     Dim a
  3.     With [a1] '不清楚 With ????
  4.        ' .Parent (上一層的物件): 工作表
  5.         If .Parent.AutoFilterMode = False Then .AutoFilter
  6.         .AutoFilter Field:=2, Criteria1:=ComboBox1
  7.         'For Each a In .Columns(2).Cells.SpecialCells(12)
  8.         '上面 For 這裡有錯誤:直接跳到 Next 不會執行回圈
  9.         '如是 With ' [a1]->儲存格範圍 須改成如下
  10.         For Each a In .Parent.Columns(2).Cells.SpecialCells(xlCellTypeVisible)
  11.             If a <> "" Then
  12.                 d(a.Value) = ""
  13.             Else
  14.                 Exit For
  15.             End If
  16.         Next
  17.     End With
  18. End Sub
複製代碼
  1. SpecialCells 方法 傳回 Range 物件,此物件代表與指定型態及值相符合的所有儲存格。Range 物件。
  2. expression.SpecialCells(Type, Value)
  3. expression      必選。該運算式會傳回 [套用於] 清單中的其中一個物件。
  4. Type     必選的 XlCellType。要包含的儲存格。
  5. XlCellType 可以是這些 XlCellType 常數之一。
  6. xlCellTypeAllFormatConditions。  任何格式的儲存格
  7. xlCellTypeAllValidation。具有驗證準則的儲存格
  8. xlCellTypeBlanks。空儲存格
  9. xlCellTypeComments。包含註解的儲存格
  10. xlCellTypeConstants。包含常數的儲存格
  11. xlCellTypeFormulas。包含公式的儲存格
  12. xlCellTypeLastCell。已用範圍的最後一個儲存格
  13. xlCellTypeSameFormatConditions。  有相同格式的儲存格
  14. xlCellTypeSameValidation。  有相同驗證準則的儲存格
  15. xlCellTypeVisible。所有可見儲存格
複製代碼


感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 lifedidi 於 2013-3-12 16:02 編輯

If .Parent.AutoFilterMode = False Then .AutoFilter
            .AutoFilter Field:=2, Criteria1:=ComboBox1
            For Each a In .Columns(2).Cells.SpecialCells(12)
            If a <> "" Then
            d(a.Value) = ""
            Else
            Exit For
        End If
        Next

請問大大!這程式碼的變數有哪些呢?我試了一下午還是找不出來,

【For Each a In .Columns(2).Cells.SpecialCells(12)】

這是指第二列的什麼?specialcells(12)→12指的是?

我按F8一個一個跑,都會跳過NEXT,請指教,感謝!

謝謝

TOP

        靜思自在 : 天上最美是星星,人生最美是溫情。
返回列表 上一主題