[英]Modify an excel macro to look at whole column instead of single cell
您好,我有一个宏,它可以查看sheet1上的文本,并可以查看sheet2上的单词列表。 如果sheet1上sheet2中有匹配的单词,则这些单词将变为红色。 我如何修改下面的宏,以便它不仅查看A3列,而且查看A列中的所有文本,在使用Range(“ A:A”)时,我不断收到错误消息。 另外,如何使此宏不考虑大小写? 例如:单词“ test”在词库中,因此,如果sheet1中包含“ test”,则它将突出显示,但单词“ Test”则不会突出显示。
Sub wordbank()
Set ws1 = Sheets("Sheet1")
Set ws2 = Sheets("Sheet2")
For Each c In ws2.Columns(1).SpecialCells(2)
l = Len(c.Value)
p = InStr(1, LCase(ws1.[A3].Value), LCase(c.Value))
Do Until p = 0
With ws1.[A3]
b = Asc(.Characters(Start:=p - 1, Length:=1).Text)
a = Asc(.Characters(Start:=p + l, Length:=1).Text)
If (a < 97 Or a > 122) And (b = 32 Or b = 34) Then _
.Characters(Start:=p, Length:=l).Font.Color = vbRed
p = InStr(p + l + 1, .Value, c.Value)
End With
Loop
Next
End Sub
像这样:(未经测试)
Sub wordbank()
Set ws1 = Sheets("Sheet1")
Set ws2 = Sheets("Sheet2")
For Each c In ws2.Columns(1).SpecialCells(2)
l = Len(c.Value)
For Each cel in ws1.Columns(1).SpecialCells(2)
p = InStr(1, LCase(cel.Value), LCase(c.Value))
Do Until p = 0
With cel
b = Asc(.Characters(Start:=p - 1, Length:=1).Text)
a = Asc(.Characters(Start:=p + l, Length:=1).Text)
If (a < 97 Or a > 122) And (b = 32 Or b = 34) Then _
.Characters(Start:=p, Length:=l).Font.Color = vbRed
p = InStr(p + l + 1, .Value, c.Value)
End With
Loop
Next cel
Next c
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.