修改一个Excelmacros来查看整个列而不是单个单元格

你好,我有一个macros,它看着sheet1上的文本,看着sheet2上的单词列表。 如果sheet1中的sheet2有任何匹配的单词,则单词将变为红色。 我如何修改我的下面的macros,以便它看起来在A列中的所有文本不只是A3,我使用范围(“A:A”)时不断收到错误。 另外,如何让这个macros不考虑大写和小写呢? 例如:单词“testing”在词库中,所以如果“testing”在单页1中,将被突出显示,而不是“testing”一词。

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 

像这样的东西:(未经testing)

 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