返回列表 上一主題 發帖

[發問] 只輸入簡短文字或數字,以名稱或帳號查詢

本帖最後由 Andy2483 於 2023-2-20 15:00 編輯

回復 6# 准提部林


    謝謝前輩
學公式很不簡單!懂VBA解法不一定會公式解法,後學駑鈍,學公式希望勤能補拙
以下是後學學習以VBA的方式處理,懇請前輩再指導,謝謝
不用(Application.EnableEvents = False)盡力防堵再觸發,不知什麼原因還是發生再觸發了,哪裡錯了??

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Arr, V$, N&, A$, i&
With Target
  If InStr(.Address, "$Q$9") Or .Count > 1 Then
      Exit Sub
   End If
   If .Address = "$Q$8" Then
      V = .Value
      Arr = Sheets("客戶基本資料").Range([客戶基本資料!D1], [客戶基本資料!C65536].End(3))
      For i = 2 To UBound(Arr)
         If Arr(i, 1) & Arr(i, 2) & "/" Like "*" & V Then
            A = Split(V, "*")(0)
            A = Format(InStr(Arr(i, 1) & Arr(i, 2) & "/", A), "00|")
            N = N + 1
            Arr(N, 1) = A & Arr(i, 1) & "_" & Arr(i, 2)
         End If
      Next
      Range([Q9], Cells(Rows.Count, "Q").End(3)(2)) = ""
      If N = 0 Then Exit Sub
      With .Item(2, 1).Resize(N, 1)
         .Value = Arr
         If N > 1 Then
            [T:W].EntireColumn.Hidden = False
            .Sort Key1:=.Item(1), Order1:=xlAscending, Header:=xlNo
            [T:W].EntireColumn.Hidden = True
         End If
         .Replace "*|", ""
      End With
   End If
End With
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 有多少力量就做多少事,不要心存等待,等待才會落空。
返回列表 上一主題