如何删除包含具有特殊符号的单元格的行?

时间:2019-06-06 22:59:43

标签: excel vba

我需要删除单元格包含®的行。

Cells(iCntr, 6).Value = "*®*"
Cells(iCntr, 6).Value = "®" 

我也尝试过设置condition_ranges和conditions-我无法使特殊字符起作用。

Sub Remove()

Dim lRow As Long
Dim iCntr As Long
lRow = 1000
   For iCntr = lRow To 1 Step -1
   If Cells(iCntr, 6).Value = "BLK" Then
       Rows(iCntr).Delete
   ElseIf Cells(iCntr, 6).Value = "WHI" Then
       Rows(iCntr).Delete
   ElseIf Cells(iCntr, 7).Value = "*®*" Then
       Rows(iCntr).Delete

 End If
 Next
 End Sub

该代码对于“ BLK”和“ WHI”正常工作,但是使用“ ®”不会删除任何内容。没有错误消息,只是不会修改工作表。

2 个答案:

答案 0 :(得分:1)

您可以使用Like

ElseIf Cells(iCntr, 7).Value Like "*®*" Then

答案 1 :(得分:0)

该问题可以翻译为“如何检查字符串是否包含特定的子字符串” ,因为一旦解决了这一部分,就可以删除相应的单元格。

InStr是一个函数,用于比较两个字符串,并返回第二个字符串在第一个字符串中的位置。如果在第一个中找不到第二个,则返回0。带着一些幻想,这可以用来查看(R)是否存在:

Sub TestMe()
    Debug.Print ThePresenceOfR("kt®b")
    Debug.Print ThePresenceOfR("tzv")
End Sub

Function ThePresenceOfR(str As String) As Boolean
    ThePresenceOfR = InStr(1, str, "®")
End Function

或者如other answer中所述,kt®b Like "*®*"将产生相同的结果。