我正在嘗試遮蔽其他所有可見細胞組。
我的資料的每一行都包含有關給定訂單的資訊,每個訂單可以有多行,例如,訂單 1 許多有 3 行,而訂單 2 可能有 1 行,等等。資料按訂單號排序,因此所有行為給定的順序是連續的。
我已將每個組與包含以下公式的輔助列 (AS) 相比較:=IF(ROW()=2,TRUE,IF(A2=A1,AS1,NOT(AS1)))
這會導致所有其他訂單組為 TRUE 或 False。然后我使用條件格式來遮蔽每個“TRUE”行。
這一直有效,直到我開始過濾我的資料,然后我可以得到兩個陰影組或彼此相鄰的未陰影組。
我想我正在尋找的是一個 VBA 函式,它將一個單元格與以前的 VISIBLE 單元格進行比較,如果匹配或不匹配,將回傳 TRUE 或 FALSE。
任何幫助都感激不盡。
uj5u.com熱心網友回復:
您可以使用此代碼來遮蔽每隔一行
Sub ShadeThem()
Dim okShade As Boolean
Dim r As Range
For Each r In Range("A1", Cells(Rows.Count, "A").End(xlUp)).SpecialCells(xlCellTypeVisible)
If okShade Then
r.EntireRow.Interior.Color = vbRed
okShade = False
Else
okShade = True
End If
Next
End Sub
我假設您過濾后的資料從第 1 行向下影響 A 列 他們不是,只是更改"A1"并Cells(Rows.Count, "A")影響所需的列
為了讓它在每次新過濾時運行,您可以:
添加一個計算可見行數的輔助單元格 =SUBTOTAL(103;A1:A1000) 這將
Worksheet_Calculate在每次過濾時觸發事件Worksheet_Calculate在相關的作業表代碼窗格中添加事件處理程式Private Sub Worksheet_Calculate() ShadeThem End Sub
uj5u.com熱心網友回復:
正如我在評論中所說,幾乎可以肯定有一種更好的方法來使用電子表格(表格!)來完成您正在嘗試的整體作業。但是,如果你真的想要一個 VBA 自定義公式來測驗一個單元格是否被隱藏,你可以使用這個......
Function isHiddenRow(aRange As Range) As Boolean
isHiddenRow = aRange.EntireRow.Hidden
End Function
這個公式假設了一些可能性:
- 只有一個細胞。
- 過濾重新計算的影響。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/535546.html
標籤:擅长VBA苹果系统
上一篇:我在哪里可以找到kafka-connect屬性檔案的mac中的kafka檔案夾?
下一篇:如何在引導程式中使用資料目標?
