繁体   English   中英

修改一个Excel宏以查看整个列而不是单个单元格

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM