类似于如何在电子表格中向下拖动单元格,它将继续引用该公式的同一行中的单元格。我需要找到一种方法,我可以在电子表格中搜索I列中的字母Y,如果它在I列中找到Y,那么它将选择同一行中的列B到AR的单元格。然后隐藏那些细胞而不是整行。这就是我到目前为止所做的:
Sub Macro1()
'Sub HideRows()
Dim cell As Range
For Each cell In Range("I1:I5000")
If UCase(cell.Value) = "Y" Then
Select (??? this is where I need to find help selecting the proper range.)
Selection.NumberFormat = ";;;"
End If
Next
Calculate
End Sub
谢谢,
答案 0 :(得分:0)
你应该可以使用你的细胞对象吗?无需Select
任何内容。
For Each cell In Range("I1:I5000")
If UCase(cell.Value) = "Y" Then
cell.NumberFormat = ";;;"
End If
Next
关于隐藏单元格,我认为你不能隐藏单个单元格而不隐藏整行。
cell.EntireRow.Hidden = True
这会将第B列H的单元格格式设置为第I列中包含Y的行的;;;
。
Sub test()
Dim sht As Worksheet, cell As Range
Dim rangeString As String
Set sht = ActiveSheet
For Each cell In sht.Range("I1:I5000")
If UCase(cell.Value) = "Y" Then
'Columns B --> H
sht.Cells(cell.Row, 2).Resize(1, 7).NumberFormat = ";;;"
End If
Next cell
End Sub
答案 1 :(得分:0)
自动过滤器可以工作,但很明显,你没有隐藏单元格,因为你只能隐藏完整的列或行。您只是模糊了显示,但仍然可以在公式栏中看到内容。
Sub Macro1()
'Sub HideRows()
Dim cell As Range
with Range("I1:I5000")
.autofilter
.autofilter field:=1,criteria1:="Y"
.offset(1).resize(.rows.count-1).specialcells(xlCellTypeVisible).offset(0,-7).resize(, 43).NumberFormat = ";;;"
.autofilter
end with
End Sub