返回列表 上一主題 發帖

[發問] 模糊查詢方式

回復 1# tsuan
程式碼:   複製貼上在 [查詢]工作表的模組
  1. Option Explicit
  2. Private Sub Worksheet_Change(ByVal Target As Range)  '[查詢]工作表的 ( 修改儲存格 ) 觸發事件
  3.     If Target.Address(0, 0) = "B1" Or Target.Address(0, 0) = "F1" Then
  4.         Application.EnableEvents = False                            '停止:觸發事件
  5.         'EnableEvents 屬性 如果指定物件能觸發事件,則本屬性為 True。讀/寫 Boolean。
  6.         Range("A3").CurrentRegion.Offset(1) = ""                    '清除舊有查詢資料
  7.         With Sheets("聯絡人")
  8.             .AutoFilterMode = False
  9.             'AutoFilterMode 屬性 如果目前在工作表上顯示有 [自動篩選] 下拉箭號,則此屬性為 True。
  10.             '該屬性與 FilterMode 屬性互相獨立。讀/寫 Boolean。
  11.             .Range("A1").AutoFilter 1, "*" & [B1] & "*"
  12.             '[自動篩選] 第一欄 準則字串:   "*" & [B1] & "*"
  13.             
  14.             .Range("A1").AutoFilter 2, "*" & [F1] & "*"
  15.             '[自動篩選] 第二欄 準則字串:   "*" & [F1] & "*"
  16.             
  17.             .UsedRange.Offset(1).Copy [A4]                          '複製資料
  18.             .AutoFilterMode = False
  19.         End With
  20.         Application.EnableEvents = True
  21.     End If
  22. End Sub
複製代碼

TOP

回復 2# die78325
查詢功能() :加上公司查詢
Name 是VBA使用的關鍵字  變數,程序名稱要避免使用
  1. Option Explicit
  2. Sub 查詢功能()
  3.     Dim 人員 As Range, 公司 As Range, I As Integer
  4.     Application.ScreenUpdating = False  '關閉顯示
  5.     With Sheets("查詢")
  6.         Set 公司 = .Range("B1")
  7.         Set 人員 = .Range("F1")
  8.         .Range("A4:A" & .[a4].End(xlDown).Row).EntireRow = ""
  9.     End With
  10.     With Sheets("聯絡人")
  11.         For I = 2 To .[B65536].End(xlUp).Row
  12.             If .Cells(I, 1) Like "*" & 公司 & "*" And .Cells(I, 2) Like "*" & 人員 & "*" Then '萬用字元收尋
  13.                 Sheets("聯絡人").Range("A" & I & ":J" & I).Copy
  14.                 With Sheets("查詢")
  15.                     .Cells(.[a65536].End(xlUp).Row + 1, 1).PasteSpecial Paste:=xlPasteValues
  16.                 End With
  17.             End If
  18.         Next I
  19.     End With
  20.     Sheets("查詢").Activate
  21.     [F1].Select
  22.     Application.ScreenUpdating = True  '開啟顯示
  23. End Sub
複製代碼

TOP

回復 9# yanto913
  1. Option Explicit
  2. Sub 查詢功能()
  3.     Dim Ex_Name As String, Ex_公司
  4.     'Name 是VBA的關鍵字請避免使用
  5.     '關閉顯示
  6.     Application.ScreenUpdating = False
  7.     With Sheets("查詢")
  8.         Ex_Name = .Range("F1")   '姓名
  9.         Ex_公司 = .Range("B1")   '公司
  10.       '  .UsedRange.Offset(2).Clear  '清除舊有的查詢
  11.     End With
  12.     With Sheets("聯絡人")
  13.         G = .[B65536].End(xlUp).Row
  14.             For I = 2 To G
  15.                 '萬用字元收尋
  16.               '  If .Cells(I, 2) Like "*" & Ex_Name & "*" Then '只查姓名
  17.                 If .Cells(I, 1) Like "*" & Ex_公司 & "*" And .Cells(I, 2) Like "*" & Ex_Name & "*" Then '查 姓名及公司
  18.                 'If .Cells(I, 1) Like "*" & Ex_公司 & "*" Or .Cells(I, 2) Like "*" & Ex_Name & "*" Then '可查姓名 Or 公司
  19.                     .Range(.Cells(I, 1), .Cells(I, 10)).Copy
  20.                     c = Sheets("查詢").[a65536].End(xlUp).Row
  21.                     Sheets("查詢").Cells(c + 1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  22.                     :=False, Transpose:=False
  23.                 End If
  24.             Next I
  25.     End With
  26.     Application.ScreenUpdating = True  '開啟顯示
  27. End Sub
複製代碼

TOP

回復 11# yanto913

TOP

        靜思自在 : 人的眼睛長在前面,只看到別人的缺點,絲毫看不到自己的缺點。
返回列表 上一主題