我需要删除单元格包含®的行。
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”正常工作,但是使用“ ®”不会删除任何内容。没有错误消息,只是不会修改工作表。
答案 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 "*®*"
将产生相同的结果。