如果单元格包含子字符串,则VBA Excel循环遍历列并隐藏列

时间:2017-12-15 19:35:52

标签: excel vba

我正在尝试遍历我指定的列,如果该列中的一个单元格包含子字符串,如果隐藏了该单元所在的行。

此:

A       B
aaaccc  456
adzass  46
ddamdd  784
sdadaz  789

会变成这样:

A       B
aaaccc  456
ddamdd  784

到目前为止,这是我的代码:

 Dim N As Long, i As Long
    N = Cells(Rows.Count, "B").End(xlUp).Row
    For i = 2 To N
        If Cells(i, "B") Like "*KB*" Or Cells(i, "B") Like "*KZ*" Then
        '' MsgBox Cells(i, "B").Value
            Cells(i, "B").Row.Hidden
        End If
    Next i

我以为我可以通过Cells(i, "B").Row来获取单元格的行,但它似乎没有返回它。

1 个答案:

答案 0 :(得分:0)

Dim N As Long, i As Long
N = Cells(Rows.Count, "B").End(xlUp).Row
For i = 2 To N
    If Cells(i, "A") Like "*z*" Then 'changed criteria
        'MsgBox Cells(i, "A").Value
        Rows(i).Hidden = True 'Use Rows(rowindex) to get the row object
    End If
Next i

上面的代码可以解决问题。

一些事情:

  • 你的if语句与你想要隐藏的任何一行都没有匹配,所以我稍微改了一下。
  • Cells(i," B")。Row为您提供行索引,而不是行对象本身
  • .Hidden是属性,您需要将其设置为true或false。因此:行(i)。隐藏=真