Vba 基于行值隐藏范围内的列
我试图在工作表中隐藏列。我有以下脚本。我希望范围是动态的。现在,它正在查看工作表、表格,然后是第3列、表格末尾的第3行 我希望脚本查看表中的第3列,然后在第3列中找到包含与单元格A4值相等的值的行。然后使用表末尾的那一行执行If Not搜索 我想不出一种方法来获取基于单元格值设置行值的范围Vba 基于行值隐藏范围内的列,vba,excel,Vba,Excel,我试图在工作表中隐藏列。我有以下脚本。我希望范围是动态的。现在,它正在查看工作表、表格,然后是第3列、表格末尾的第3行 我希望脚本查看表中的第3列,然后在第3列中找到包含与单元格A4值相等的值的行。然后使用表末尾的那一行执行If Not搜索 我想不出一种方法来获取基于单元格值设置行值的范围 Sub Role_Filter_Button() Dim cl As Range, rTest As Range 'Sets the range by starting with the
Sub Role_Filter_Button()
Dim cl As Range, rTest As Range
'Sets the range by starting with the third column in a table
Set rTest = Range(Worksheets("Know Our Business").ListObjects("Know_Our_Business").DataBodyRange(3, 3), Worksheets("Know Our Business").ListObjects("Know_Our_Business").DataBodyRange(3, 3).End(xlToRight))
For Each cl In rTest
If Not InStr(1, cl.Value, Worksheets("Know Our Business").Range("A4").Value) > 0 Then
cl.EntireColumn.Hidden = True
End If
Next cl
End Sub
我添加了第二个循环,第一个循环查看第3列。计数器对行进行计数,如果第3列中的值与a4中的值匹配,则使用i设置代码所用的行
Sub Role_Filter_Button()
Dim cla As Range, clb As Range, rTest As Range
Dim i As Long
Dim dTable As ListObject
Set dTable = ThisWorkbook.Worksheets("Know Our Business").ListObjects("Know_Our_Business")
i = 1
For Each cla In dTable.ListColumns(3).Range
If cla = ThisWorkbook.Worksheets("Know Our Business").Cells(4, 1) Then
Set rTest = Range(dTable.DataBodyRange(i, 3), dTable.DataBodyRange(i, 3).End(xlToRight))
For Each clb In rTest
If Not InStr(1, cla.Value, Worksheets("Know Our Business").Range("A4").Value) > 0 Then
clb.EntireColumn.Hidden = True
End If
Next clb
End If
i = i + 1
Next cla
End Sub