如何同时在多个工作表中搜索字符串?

问题描述 投票:1回答:1

我有大约30张表,我希望这段代码同时运行。我想找到“ABC”并在我的所有工作表中删除它旁边的单元格的值。

我从错误中得到了错误:Set rSearch = .**range**("A1", .range("A" & rows.count).end(x1up))

当我在“With”语句旁边指定“Sheet1”时,它可以工作,但我希望这些代码能够在我的所有工作表上运行。

Sub soek()

    Dim rSearch As Range
    Dim rFound As Range
    Dim sign12 As String
    Dim sheetsarray As Sheets
    Set sheetsarray = ActiveWorkbook.Sheets(Array("sheet1", "sheet2", "sheet3"))


    sign12 = "ABC"


    With sheetsarray
        Set rSearch = .Range("A1", .Range("A" & Rows.Count).End(xlUp))

        Set rFound = rSearch.Find(What:=sign12, LookIn:=xlValues)

        If rFound Is Nothing Then

        Else
            rFound.Offset(0, 1).ClearContents

        End If
    End With

End Sub

这个问题很像:How to search for a string in all sheets of an Excel workbook?

但在我看来,理解如何让代码在其他工作表上运行,阅读我的代码比上面链接的代码要容易得多。

excel vba excel-vba
1个回答
1
投票

试试这个(汇编上面的评论;-)

Sub soek()

Dim rSearch As Range
Dim rFound As Range
Dim sign12 As String
Dim oWB As Workbook
Dim oWS As Worksheet

Set oWB = ThisWorkbook

sign12 = "ABC"

For Each oWS In oWB.Sheets

With oWS
    Set rSearch = .Range("A1", .Range("A" & Rows.Count).End(xlUp))

    Set rFound = rSearch.Find(What:=sign12, LookIn:=xlValues)

    If rFound Is Nothing Then

    Else
        rFound.Offset(0, 1).ClearContents

    End If
End With

Next oWS

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.