Q:

Go through a table to check if any of its cells contain "T1"

My code is supposed to go through a table to check if any of its cells contain "T1".  The format of all the cells in this table is text.  
If it finds a cell with "T1" in it, it will do stuff to cells in other tables.  In particular, it assigns cells(i, 8) with the value of cells(i-18, j), both of which are in number format, and assign cells(i,9) with the value of cells(k2, j), both of which are dates.  
When I execute the code, it makes cells(i,8) equal to 0 and doesn't do anything to cells(i,9). 
Can someone correct this code?  
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

A:

You are essentially putting the result of a boolean comparison into Cells(i, 8); e.g. is Cells(i, 8) equal to Cells(i - 18, j) and is Cells(i, 9) equal to Cells(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

If you feel that you absolutely must put both cell value assignments on the same line (you don't for any reason other than cosmetic) then separate with a colon. 
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

