语法-Range.SpecialCells方法VBA

语法-Range.SpecialCells方法VBA,vba,excel,range,Vba,Excel,Range,通过使用Range.SpecialCells方法(Excel),是否可以选择范围内包含文本“abc”的单元格?我不懂语法。。。在下面的链接中 不起作用 不起作用 感谢编辑添加代码以存储过滤后的单元格,而不是删除它们 Specialcells()不要公开你要求的行为 您最好使用AutoFilter() 用于删除包含整行给定文本的单元格的代码 Sub sub1() With Worksheets("worksheet").Range("A1:A10") '<--| referenc

通过使用Range.SpecialCells方法(Excel),是否可以选择范围内包含文本“abc”的单元格?我不懂语法。。。在下面的链接中

不起作用

不起作用


感谢

编辑添加代码以存储过滤后的单元格,而不是删除它们

Specialcells()
不要公开你要求的行为

您最好使用
AutoFilter()


用于删除包含整行给定文本的单元格的代码

Sub sub1()
    With Worksheets("worksheet").Range("A1:A10") '<--| reference your range
       .AutoFilter field:=1, Criteria1:="abc" '<--| filter referenced cells with "abc"
       If Application.WorksheetFunction.Subtotal(103, .Cells) > 1 Then .Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete Shift:=xlShiftUp  '<--| if any filtered cells other than header then delete filtered cells skipping header
        .Parent.AutoFilterMode = False '<--| remove filtering
    End With
End Sub

您好,谢谢您的回答-我如何在区域“rng”中存储来自另一个区域的具有文本字符串条件的单元格?对不起,我不明白您的意思:请更详细地了解编辑后的答案。如果我解决了您的原始问题,请将答案标记为已接受,谢谢!这就是你要找的。
Set rng = Worksheets("Output-Booth").Range("C18:C500").Find(What:="abc")
rng.Rows.Delete Shift:=xlShiftUp
Sub sub1()
    With Worksheets("worksheet").Range("A1:A10") '<--| reference your range
       .AutoFilter field:=1, Criteria1:="abc" '<--| filter referenced cells with "abc"
       If Application.WorksheetFunction.Subtotal(103, .Cells) > 1 Then .Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete Shift:=xlShiftUp  '<--| if any filtered cells other than header then delete filtered cells skipping header
        .Parent.AutoFilterMode = False '<--| remove filtering
    End With
End Sub
Sub sub2()
    Dim rng As Range

    With Worksheets("worksheet").Range("A1:A10") '<--| reference your range
        .AutoFilter field:=1, Criteria1:="abc" '<--| filter referenced cells with "abc"
        If Application.WorksheetFunction.Subtotal(103, .Cells) > 1 Then Set rng = .Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible) '<--| if any filtered cells other than header then set 'rng' to filtered cells skipping header
         .Parent.AutoFilterMode = False '<--| remove filtering
    End With
End Sub