返回列表 上一主題 發帖

[發問] 縮小下拉式選單範圍

回復 8# cbl0924
回復 18# ML089

純用公式會比較慢一些,可試試 純VBA看看



8#檔案 Sheet3模組的程式碼
  1. Option Explicit
  2. Private Sub Worksheet_Change(ByVal Target As Range)
  3.     Dim Ar(), Ar_List As Variant
  4.     If Target.Address(0, 0) = "F8" Then   'F8儲存閣內容大小是有區別的
  5.         Ar = Application.WorksheetFunction.Transpose(Range("B2", Range("B2").End(xlDown)).Value)
  6.         Ar_List = Filter(Ar, [f8], True)
  7.         'Filter 函數 傳回一個從零開始的陣列,該陣列包含基於指定篩選準則的一個字串陣列的子集。
  8.         If UBound(Ar_List) > -1 Then
  9.             Ar_List = Join(Ar_List, ",")
  10.         Else
  11.             Ar_List = Join(Ar, ",")
  12.         End If
  13.         With Target.Validation
  14.             .Delete
  15.             .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
  16.             xlBetween, Formula1:=Ar_List
  17.             .ShowError = False
  18.         End With
  19.     End If
  20. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2014-8-15 05:48 編輯

回復 20# cbl0924
Sheet3的模組貼上程式碼,到Sheet3的F8儲存格改變值即可

'F8儲存格內容大小寫是有區別的  
'Filter 函數 傳回一個從零開始的陣列,該陣列包含基於指定篩選準則的一個字串陣列的子集。
這是模租中的註解文字,有助於了解的程式碼編寫
刪不刪隨個人喜好.
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 25# cbl0924
中文字的地方全是 ?????????????????????????, 版本是簡體的嗎? ,不然試試 重新安裝.
鍵盤上 按下[Print Screen]鍵, 到小畫家貼上,製成圖片檔,可上傳螢幕畫面.
xlsx 不可儲存巨集, xlsm 才可儲存巨集.
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 慈悲沒有敵人,智慧不起煩惱。
返回列表 上一主題