返回列表 上一主題 發帖

[發問] 輸入資料後便自動地成為

本帖最後由 Hsieh 於 2010-5-11 20:51 編輯

定義名稱list
=OFFSET(Sheet1!$B$2,,,IF(COUNTA(Sheet1!$B:$B)=0,1,COUNTA(Sheet1!$B:$B)),)
驗證清單
公式=list
Dropdown list.rar (10.53 KB)
學海無涯_不恥下問

TOP

本帖最後由 Hsieh 於 2010-5-11 23:03 編輯

回復 4# letugo


    這樣可能要用到VBA輔助才行 Dropdown list.rar (14.06 KB)
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Dim Ar()
  3. Set d = CreateObject("Scripting.Dictionary")
  4. If Target.Column = 3 Then '指定欄位
  5.    With Target.EntireColumn.Validation
  6.    .Delete
  7.    For Each a In Range(Cells(2, Target.Column), Target)
  8.      d(a.Value) = d(a.Value) + 1
  9.    Next
  10.    Do Until d.Count = 0 Or i = 20
  11.        k = Application.Large(d.items, 1)
  12.        k = Application.Match(k, d.items, 0)
  13.        ans = Application.Index(d.keys, k)
  14.        If mystr = "" Then
  15.        mystr = ans
  16.        Else
  17.        mystr = mystr & "," & ans
  18.        End If
  19.        d.Remove ans: i = i + 1
  20.    Loop
  21.    If Not IsError(mystr) And mystr <> "" Then .Add xlValidateList, Formula1:=mystr: .ShowError = False
  22.    End With
  23. End If
  24. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 9# letugo
難道你都沒去了解程式碼嗎?
If Target.Column = 3 Or Target.Column = 5 Then '指定欄位

Do Until d.Count = 0 Or i = 30 'i為指定排名量

只是把不重複名單計算出現次數後,一次數多寡加入驗證清單
就這麼單純的邏輯
學海無涯_不恥下問

TOP

        靜思自在 : 是非當教育,讚美作警惕。
返回列表 上一主題