Board logo

標題: 請大大們協助了解篩選問題, [打印本頁]

作者: hong912    時間: 2013-11-3 14:10     標題: 請大大們協助了解篩選問題,

大大們, 小弟對vba知識有限, 近日小弟幾經辛苦才完成了一個滿以為可行的篩選程式, 但當用時原來是行不通,
故求教各大大能完成該程式, 附檔, 謝謝!!

小弟的程式碼在工作表程式區, 煩請各大大協助,

[attach]16563[/attach]
作者: c_c_lai    時間: 2013-11-3 16:21

大大們, 小弟對vba知識有限, 近日小弟幾經辛苦才完成了一個滿以為可行的篩選程式, 但當用時原來是行不通,
...
hong912 發表於 2013-11-3 14:10

有關你附件檔案中之 abc() ,請你稍稍說明一下 你實際到底想要做甚麼?
想法如何? 程式碼中後有 end if 前面卻無 if, 還有 len(XXX) ?
還有過濾的條件 <> 甚麼?
作者: hong912    時間: 2013-11-3 19:45

回復 2# c_c_lai

謝謝大大回應, abc不過是程式名稱, 並沒有實質作用, 或者這樣說, 小弟需求一篩選程式, 當小弟按下按鈕, 彈出一框架, 只要輸入一字, 工作表2便把工作表1內c欄位名稱, 所有有相關字名稱的資料列顯示於工作表2 內,
至於小弟所謂程式, 本就是不值一提,
謝謝謝!
作者: c_c_lai    時間: 2013-11-3 21:46

回復 3# hong912
請將程式複製於 ThisWorkbook 內:
  1. Option Explicit

  2. Sub Ex()
  3.     Dim 準則1 As String, rngFilter As String
  4.    
  5.     準則1 = InputBox("輸入一字 (準則)")
  6.     If 準則1 = "" Then Exit Sub
  7.    
  8.     With Sheets("Sheet1")
  9.         Sheets("Sheet2").Cells.Clear
  10.         rngFilter = "*" & 準則1 & "*"
  11.         .[AA1] = "姓名"
  12.         .[AA2] = rngFilter
  13.         .Range("A3").CurrentRegion.AdvancedFilter xlFilterCopy, .[AA1:AA2], _
  14.                      CopyToRange:=Sheets("Sheet2").Range("A3"), Unique:=True
  15.     End With
  16. End Sub
複製代碼

作者: hong912    時間: 2013-11-3 22:15

回復 4# c_c_lai

感謝回應, 會細心學習, 祝快樂, 謝!!
作者: joey0415    時間: 2013-11-7 10:52

本帖最後由 joey0415 於 2013-11-7 10:55 編輯

改路徑
D:\篩選.xls

與SQL語法就能找到你想要的
select * from [Sheet1$] where 姓名='何仁德'
  1. Sub Macro1()
  2. '
  3. ' Macro1 Macro
  4. ' joey 在 2013/11/7 錄製的巨集
  5. '

  6. '
  7.     With ActiveSheet.QueryTables.Add(Connection:=Array( _
  8.         "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=D:\篩選.xls;Mode=Share Deny Write;Extended Properties=""HDR=" _
  9.         , _
  10.         "YES;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=35;Jet OLEDB:" _
  11.         , _
  12.         "Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password" _
  13.         , _
  14.         "="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLE" _
  15.         , "DB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"), Destination _
  16.         :=Range("A1"))
  17.         .CommandType = xlCmdTable
  18.         .CommandText = Array("select * from [Sheet1$] where 姓名='何仁德'")
  19.         .Name = "篩選"
  20.         .FieldNames = True
  21.         .RowNumbers = False
  22.         .FillAdjacentFormulas = False
  23.         .PreserveFormatting = True
  24.         .RefreshOnFileOpen = False
  25.         .BackgroundQuery = True
  26.         .RefreshStyle = xlInsertDeleteCells
  27.         .SavePassword = False
  28.         .SaveData = True
  29.         .AdjustColumnWidth = True
  30.         .RefreshPeriod = 0
  31.         .PreserveColumnInfo = True
  32.         .SourceDataFile = "D:\篩選.xls"
  33.         .Refresh BackgroundQuery:=False
  34.     End With
  35. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)