我已经在网上冲浪了一段时间,但我终生无法弄清楚如何删除同一工作簿中包含关键字的多个工作表中的行。
第1张(总体)包含所有数据,接下来的5张(QB,RB,WR,DEF,K)包含第1张(总体)的数据。
我要完成的工作是搜索名称(例如Aaron Rodgers),然后从包含该引用的所有工作表中删除所有行(因此,在上面的示例中,Aaron Rodgers的行将从“总体”中删除 QB,因为他的名字将同时出现在这两个表中。
名称搜索将一直在变化,因此它是一种搜索,它会破坏所有工作表中包含我选择的参考名称的行。
答案 0 :(得分:0)
您需要:
代码:
Option Explicit
Sub destroy()
Dim str As String, w As Long, m As Variant, wss As Variant
wss = Array("Overall", "QB", "RB", "WR", "DEF", "K")
'1. define the search string
str = Application.InputBox(prompt:="search for:", Title:="search and destroy", _
Default:="Aaron Rodgers", Type:=xlTextValues)
If CBool(Len(str)) And str <> "False" Then
'2. define the parent workbook
With ThisWorkbook
'3. loop through selected worksheets within that workbook
For w = LBound(wss) To UBound(wss)
With .Worksheets(wss(w))
'4. locate rows containing the search string and delete them
m = Application.Match(str, .Columns(1), 0)
Do While Not IsError(m)
.Cells(m, "A").EntireRow.Delete
m = Application.Match(str, .Columns(1), 0)
Loop
End With
Next w
End With
End If
End Sub