excel vba表一与表二单元内容部分相同时填充表一内容的单元格为青色

1.表1的C5:F18为范围
2.表2的H7:M12为范围
3.。表一内容二个字符
4。表二内容4个字符
例表一C5=01 表二H9=Q0P1(字母剔出,余下结果为01.,此时填充C5单元格为黄色)
在语句中注解,哪句表示QP不参加对比较,哪一个表示对比较。

表1标签上右击——查看代码,复制一下代码:

Sub 标颜色()
    Dim Cell1 As Range
    Dim Str1 As String, Str2 As String    
    
    For Each Cell1 In Worksheets("Sheet1").Range("C5:F18")
    '对第一个表C5:F18区域的每个单元格进行遍历
        Str1 = Cell1.Text
        On Error GoTo FindResult
        Str2 = Worksheets("Sheet2").Range("H7:M12").Find("*" _
               & Left(Str1, 1) & "*" & Right(Str1, 1) & "*").Text
        '上句代码出错就是没找到
 
        If Str2 <> "" And Str1 <> "" Then Cell1.Interior.Color = RGB(255, 255, 0)  '设置背景黄色

FindResult:
    Next    
End Sub

追问

Str2 = Worksheets("Sheet2").Range("H7:M12").Find("*" _
& Left(Str1, 1) & "*" & Right(Str1, 1) & "*").Text
'上句代码出错就是没找到

这里提示对象变量或WITH变量未设置

追答

看你表2的名称是不是Sheet2,如果不是进行适当修改

还有前面的代码中涉及的Sheet1名称,也要根据实际情况修改

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-26
关键还是数据,如果C5=01,那么表二范围中,下面这些数据是不是属于对比成功?
0QP1
0Q1P
1Q0P
Q01P
02Q1追问

表一2个字符/表2是4个字符来的

追答

我想我问得很明白了,给你的例子也很清楚,在C5=01的前提下,每个例子(都是4个字符)是不是属于对比成功?因为不知道你具体的对比逻辑,所以给了这些例子。难道这些例子不在你的【表一2个字符/表2是4个字符】描述中?你的追问(回答)没有任何意义,你应该回答我,那些例子是不是分别匹配成功,这样可以清楚你的匹配逻辑
0QP1 是否位置相关
0Q1P 是否位置相关
1Q0P 是否次序相关
Q01P 是否必须间隔
02Q1 01是否匹配021
这些都和你的逻辑相关,你的一个例子说明不了详细逻辑,以上的例子都可以满足你所提供的这一个例子,但是却可能与其他逻辑相悖。明显代码的判断是不一样的

追问

是这样的。,字母除外C5的0匹配4个字符第1个0.,如果字母除外,        第1个是1即表示没匹配

追答Sub Colorise()
Dim i!, s$, t$, x$, sR As Range, tR As Range
s = "C5:F18": t = "F7:M12"
Sheet1.Range(s).Interior.ColorIndex = -4142
For Each sR In Sheet1.Range(s)
 If sR <> "" Then
  For Each tR In Sheet2.Range(t)
   If tR <> "" Then
    i = 1: x = ""
    For i = 1 To Len(tR)
     If Asc(Mid(tR, i, 1)) >= 48 And Asc(Mid(tR, i, 1)) <= 57 Then _
      x = x & Mid(tR, i, 1) '1~9 的数字
    Next
    If sR = Left(x, 2) Then sR.Interior.ColorIndex = 6: Exit For
   End If
  Next
 End If
Next
End Sub


附件可下载参考

本回答被提问者采纳