2017-01-23 62 views
1

我正在創建一個VBA應用程序,它將查找我在某個範圍內輸入的文本(應該是動態的,以便將來輸入更多內容)。與該範圍中的輸入的文本將尋找在另一片柱的話:在另一個工作表中查找動態範圍內的文本

實施例:

Words to look for

而且它會尋找在另一片輸入的詞語。

Dim Main as Worksheet 
Set Main = Sheets("Sheet1") 
Dim Raw2 as Worksheet 
Set Raw2 = Sheets("Sheet2") 

LookFor = Main.Range(D8:100) 
Fruits = Raw2.Range("G" & Raw2.Rows.Count).End(xlUp).row 
For e = lastRow To 2 Step -1 

value = Raw2.Cells(e, 7).value 

If Instr(value, LookFor) = 0 _ 
Then 

Raw2.Rows(e).Delete 

老實說,我不知道如何繼續。上面提到的代碼只是實驗。期望的輸出是刪除sheet2中的任何內容,但包含我在「查找單詞」中輸入的單詞的行除外。希望您能夠幫助我。謝謝。

+1

什麼是你到目前爲止的代碼?你能描述所需的輸出嗎? – R3uK

+2

@Sevpoint正如你所看到的,通過輸入你的代碼作爲評論,這很難遵循。請編輯您的原始問題,並在該編輯中添加正確格式的代碼。此外,請閱讀HELP頁面以獲取[如何提出問題](http://stackoverflow.com/help/how-to-ask)以及[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve) –

+1

你走了。我已編輯@RonRosenfeld – Sevpoint

回答

1

這應該做的伎倆:

Sub Sevpoint() 

Dim Main As Worksheet 
Set Main = Sheets("Sheet1") 
Dim Raw2 As Worksheet 
Set Raw2 = Sheets("Sheet2") 
Dim LooKFoR() As Variant 
Dim LastRow As Double 
Dim i As Double 
Dim j As Double 
Dim ValRow As String 
Dim DelRow As Boolean 

LooKFoR = Main.Range(Main.Range("G8"), Main.Range("G" & Main.Rows.Count).End(xlUp)).Value 

LastRow = Raw2.Range("G" & Raw2.Rows.Count).End(xlUp).Row 
For i = LastRow To 2 Step -1 
    ValRow = Raw2.Cells(i, 7).Value 
    DelRow = True 
    'MsgBox UBound(LooKFoR, 1) 
    For j = LBound(LooKFoR, 1) To UBound(LooKFoR, 1) 
     If LCase(ValRow)<>LCase(LooKFoR(j, 1)) Then 
     Else 
      DelRow = False 
      Exit For 
     End If 
    Next j 
    If DelRow Then Raw2.Rows(i).Delete 
Next i 

End Sub 
+0

謝謝你的回答。我以某種方式測試它不起作用。雖然它不會給出任何錯誤。期待您的迴音。謝謝! – Sevpoint

+0

@Sevpoint:您的單詞和要刪除的數據位於哪裏(表單中的表單+地址)? – R3uK

+0

需要搜索的單詞來自主表單。我想刪除的數據在Sheet 2(Raw2)中。它將搜索的列在Sheet 2(Raw2)列G中。希望這有助於。 – Sevpoint

相關問題