Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 在另一张工作表中查找动态范围内的文本_Vba_Excel - Fatal编程技术网

Vba 在另一张工作表中查找动态范围内的文本

Vba 在另一张工作表中查找动态范围内的文本,vba,excel,Vba,Excel,我正在创建一个VBA应用程序,它将查找我在特定范围内输入的文本(应该是动态的,以便我将来输入更多)。在此范围内输入的文本将在另一个工作表列中查找单词: 例如: 它会在另一张纸上查找输入的单词 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

我正在创建一个VBA应用程序,它将查找我在特定范围内输入的文本(应该是动态的,以便我将来输入更多)。在此范围内输入的文本将在另一个工作表列中查找单词:

例如:

它会在另一张纸上查找输入的单词

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中的任何内容,除了包含我在“查找单词”中输入的单词的行。希望你能帮助我。多谢各位

这应该可以做到:

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
Sub-Sevpoint()
将主菜单设置为工作表
设置主要=图纸(“图纸1”)
将Raw2设置为工作表
设置图纸2=图纸(“图纸2”)
Dim LooKFoR()作为变量
将最后一行变暗为双行
我是双人的
双倍调暗j
作为字符串的Dim ValRow
Dim DelRow为布尔型
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
对于i=最后一行到2步骤-1
ValRow=Raw2.单元格(i,7).值
DelRow=True
'MsgBox UBound(查找,1)
对于j=LBound(lookfort,1)到UBound(lookfort,1)
如果LCase(ValRow)LCase(寻找(j,1)),那么
其他的
DelRow=False
退出
如果结束
下一个j
如果是DelRow,则为Raw2.Rows(i).删除
接下来我
端接头

到目前为止,您的代码是什么?您能描述所需的输出吗?@Sevpoint正如您所见,通过将代码作为注释输入,很难理解。请编辑您的原始问题,并在编辑中添加正确格式的代码。另外,请阅读帮助页面以获取有关的信息,然后开始。我已经编辑了@ronrosenfeld,谢谢你的回答。我测试了一下,不知怎么的,它不起作用。虽然它没有给出任何错误。期待您的来信。谢谢@Sevpoint:您的单词和要删除的数据(工作表+工作表中的地址)在哪里?需要搜索的单词来自主工作表。我要删除的数据在第2页(Raw2)中。它将搜索的列位于工作表2(Raw2)的G列。希望这有帮助。@Sevpoint:尝试编辑!;)我添加了一条消息来显示字数,以帮助调试(我认为它们是从G8开始的Main)Hello@R3uk它会提示我一个数字4,因为我已经输入了4个水果。苹果,香蕉,番石榴,猕猴桃。这是表2(Raw2)包含的内容:苹果、香蕉、番石榴、猕猴桃、葡萄、橙子。不知何故,它并没有删除第2页(Raw2)G列中的葡萄和橙色行。代码几乎可以工作。:)