Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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,我试图从多个其他工作表中的行中删除一个工作表中符合条件的行。我需要循环浏览工作簿中的所有其他工作表,每次找到匹配的内容时,我都会删除第一个工作表中的整行。我收到了关于工会的错误1004。我认为这可能是因为不能在工作表之间使用Union,所以我在每个工作表之后都将其设置为Nothing。我还是会犯同样的错误 代码如下: Sub findRemaining() Dim rngToDel As Range Dim fRng As Range 'Fund range Dim wCell As Range

我试图从多个其他工作表中的行中删除一个工作表中符合条件的行。我需要循环浏览工作簿中的所有其他工作表,每次找到匹配的内容时,我都会删除第一个工作表中的整行。我收到了关于工会的错误1004。我认为这可能是因为不能在工作表之间使用Union,所以我在每个工作表之后都将其设置为Nothing。我还是会犯同样的错误

代码如下:

Sub findRemaining()
Dim rngToDel As Range
Dim fRng As Range 'Fund range
Dim wCell As Range 'Working sheet cell
Dim wRng As Range 'Working sheet range
Dim WS_Count As Integer
Dim I As Integer

Set fRng = Worksheets("All").Range("B2:B1495")
WS_Count = ActiveWorkbook.Worksheets.Count

For I = 2 To WS_Count
    Set rngToDel = Nothing
    Set wRng = Worksheets(I).Range("B2:B200")
    For Each wCell In wRng 'Loop through all working cells
        ' if wCell found in Fund range then delete row
        If Not IsError(Application.Match(Trim(wCell.Value), fRng, 0)) Then
            If rngToDel Is Nothing Then
                Set rngToDel = wCell
            Else
                Set rngToDel = Union(rngToDel, wCell)
            End If
        End If
    Next wCell
    If Not rngToDel Is Nothing Then rngToDel.EntireRow.Delete
Next I


End Sub

问题是我在
wRng
中将range设置为delete作为
wCell
,但实际上我想要删除的是
frn
中的单元格。通过修复代码的其余部分可以完美地工作。(谢谢chris)

在哪一行中出现错误?我对您的codeCouple没有任何问题:1)您可能应该从
For
循环搜索中排除工作表
All
。2) 您的描述和代码不匹配:是否要从工作表
All
或其他工作表中删除找到的匹配项?好的,如果我没有将“All”工作表包括在“For”循环中,如何搜索“All”工作表?此外,我想从工作表“全部”中删除找到的匹配项。不是其他的工作表。