Vba 检查表格中是否有任何单元格包含;T1";

Vba 检查表格中是否有任何单元格包含;T1";,vba,excel,Vba,Excel,我的代码应该通过一个表来检查它的任何单元格是否包含“T1”。此表中所有单元格的格式均为文本 如果它找到一个包含“T1”的单元格,它将对其他表中的单元格进行处理。特别是,它为单元格(i,8)分配单元格(i-18,j),两者都是数字格式,并为单元格(i,9)分配单元格(k2,j),两者都是日期 当我执行代码时,它使单元格(I,8)等于0,并且不对单元格(I,9)做任何事情 有人能纠正这个代码吗 Sub TestSub2() Dim i As Integer, j As Integer, k As

我的代码应该通过一个表来检查它的任何单元格是否包含“T1”。此表中所有单元格的格式均为文本

如果它找到一个包含“T1”的单元格,它将对其他表中的单元格进行处理。特别是,它为
单元格(i,8)
分配
单元格(i-18,j)
,两者都是数字格式,并为
单元格(i,9)
分配
单元格(k2,j)
,两者都是日期

当我执行代码时,它使
单元格(I,8)
等于
0
,并且不对
单元格(I,9)
做任何事情

有人能纠正这个代码吗

Sub TestSub2()

Dim i As Integer, j As Integer, k As Integer, k2 As Integer

'i ->tier table row counter
'j ->column counter
'k ->"Reading Date" and "PM Executed?" table row counter

'---TIER 1 TABLE---
k = 102
k2 = 84

For i = 21 To 35

    k = k + 1
    k2 = k2 + 1

    For j = 27 To 149
    Select Case Cells(k, j).Value
    Case "T1", "T1, T2", "T2, T1", "T1, T3", "T3, T1", "T1, T2, T3", "T1, T3, T2", "T2, T1, T3", "T2, T3, T1", "T3, T1, T2", "T3, T2, T1"
    Cells(i, 8) = Cells(i - 18, j) And Cells(i, 9) = Cells(k2, j)
    End Select

    Next j

Next i

您实际上是将布尔比较的结果放入
单元格(i,8)
;e、 是细胞(i,8)等于细胞(i-18,j),是细胞(i,9)等于细胞(k2,j)

如果您觉得必须将两个单元格值指定放在同一行上(除了化妆品以外,您没有其他原因),请用冒号分隔

Select Case Cells(k, j).Value
    Case "T1", "T1, T2", "T2, T1", "T1, T3", "T3, T1", "T1, T2, T3", "T1, T3, T2", "T2, T1, T3", "T2, T3, T1", "T3, T1, T2", "T3, T2, T1"
        Cells(i, 8) = Cells(i - 18, j): Cells(i, 9) = Cells(k2, j)
End Select

如果不分析太多
单元格(i,8)=单元格(i-18,j)和单元格(i,9)=单元格(k2,j)
是一个布尔表达式。如果InStr(1,Cells(k,j)。Value,“T1”,vbTextCompare)>0,那么:Cells(i,8)。Value=Cells(i-18,j)。Value:Cells(i,9)。Value=Cells(k2,j)。Value:End如果,我只需取出。。。我总是忘了布尔运算符--,不管怎样,谢谢!
Select Case Cells(k, j).Value
    Case "T1", "T1, T2", "T2, T1", "T1, T3", "T3, T1", "T1, T2, T3", "T1, T3, T2", "T2, T1, T3", "T2, T3, T1", "T3, T1, T2", "T3, T2, T1"
        Cells(i, 8) = Cells(i - 18, j): Cells(i, 9) = Cells(k2, j)
End Select