2015-06-04 99 views
0

我是VBA的新手,急需一些幫助。我有一個有兩個工作表,即「網址」和「關鍵字」的Excel文件。我需要一個可以逐個選擇關鍵字的宏,並將它們作爲過濾器應用於「URL」工作表,以最終我們得到包含至少一個關鍵字的所有URL的列表。在VBA中使用多個過濾器|| excel 2010

舉例來說,如果我申請使用的第一個關鍵詞 「食譜」 的過濾器,我應該得到的,

  • 「simplyrecipes.com」
  • 「simplerecipewizard.com」

之後當我申請第二個關鍵字「net」時,我應該有

  • 「simplyrecipes.com」
  • 「simplerecipewizard.com」
  • 「topix.net」
  • 「stockinvestingbasics.net」
  • 「techdailynews.net」
  • 「theanimeplace.net」
  • 「seniorhousingnet.com」
  • 「wordcounter.net」等。

您可以在https://goo.gl/wRxNOe

日Thnx Satdeep下載Excel文件並不需要這個任務

+0

當時VBA選擇或選擇力?請上傳迄今爲止您嘗試過的任何代碼。 – bonCodigo

+0

由選擇。正如我前面提到的,我仍然瞭解VBA。所有我管理到現在是輸入數組中的所有關鍵字。我的思考過程是在URL表中逐個使用數組內容。 –

+0

[你可以即興創作嗎?](http://www.mrexcel.com/forum/excel-questions/549322-using-visual-basic-applications-find-if-any-keyword-exists-string.html) – bonCodigo

回答

0

過濾器:

Sub GatherData() 
' http://stackoverflow.com/questions/30641317/using-multiple-filters-in-vba-excel-2010 
    Dim s1 As Worksheet, s2 As Worksheet, v1 As String, v2 As String 
    Dim N1 As Long, N2 As Long, i As Long, j As Long, K As Long 
    Set s1 = Sheets("URLs") 
    Set s2 = Sheets("keywords") 

    N1 = s1.Cells(Rows.Count, 1).End(xlUp).Row 
    N2 = s2.Cells(Rows.Count, 1).End(xlUp).Row 
    K = 1 

    For j = 1 To N2 
     v2 = s2.Cells(j, 1).Value 
     For i = 2 To N1 
     v1 = s1.Cells(i, 1).Value 
     If InStr(v1, v2) > 0 Then 
      s1.Cells(i, 1).Copy s2.Cells(K, 2) 
      K = K + 1 
     End If 
     Next i 
    Next j 
End Sub 
+0

它的工作原理,但我不想在另一張表中返回這些值。我想要的是過濾出來的結果,以便我可以刪除它們 –

+0

@satdeepsingh然後讓我們等待另一個答案。 –

+0

上面提供的宏在比較時區分大小寫。任何想法爲什麼? –

0

之所以能夠圍繞找到工作。添加了兩個宏,並在Gary的Student上面提供的第一個宏中調用它們。

下面是使用兩個宏:

Worksheets("URLs").Activate 
Range("B2").Activate 
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Result!C1,1,0)" 
Range("B2").Select 
Selection.AutoFill Destination:=Range("B2:B2716") 
Range("B2:B2716").Select 
Range("B1").Select 
Selection.AutoFilter 
ActiveSheet.Range("$A$1:$B$2716").AutoFilter Field:=2, Criteria1:= _ 
    "=#VALUE!", Operator:=xlOr, Criteria2:="=#N/A" 
Range("A1:B2716").Select 
Range("B1").Activate 
Selection.Copy 
Sheets("Approved List").Select 
Range("A1").Select 
ActiveSheet.Paste 
Columns("B:B").Select 
Application.CutCopyMode = False 
Selection.Delete Shift:=xlToLeft 

Sheets("URLs").Select 
Columns("B:B").Select 
Selection.Delete Shift:=xlToLeft 
Range("A3").Select 
Selection.AutoFilter 
Selection.End(xlUp).Select 
Sheets("Approved List").Select 

謝謝大家幫助我在這裏