VBA - 计算隐藏的且具有特定值的单元格
VBA - Count cells that are hidden and have specific value
我想弄清楚如何编写 VBA 代码来计算我的范围内有多少单元格被隐藏并具有特定值。
我试过类似的方法,但没有用:
Sub Count_hidden_ABC()
Dim s As Long
Dim Rg As Range
Set Rg = Worksheets("Sheet1").Range("G8:G255")
s = Application.WorksheetFunction.CountIfs(Rg, "ABC", Rg, SpecialValues(12))
或
Sub Count_hidden_ABC()
Dim s As Long
Dim Rg As Range
Set Rg = Worksheets("Sheet1").Range("G8:G255")
s = Rg.SpecialCells(12).Application.WorksheetFunction.CountIf(Rg, "ABC")
有人知道怎么做吗?
您可以使用此代码作为基础,它计算指定范围内值为 "ABC"
的隐藏单元格:
Sub CountHiddenCellsInRange()
Dim rng As Range, hiddenCells As Long, c As Range
hiddenCells = 0
Set rng = Range("A1:B5")
For Each c In rng
If (Rows(c.Row).Hidden Or Columns(c.Column).Hidden) And c.Value = "ABC" Then hiddenCells = hiddenCells + 1
Next
MsgBox hiddenCells
End Sub
特殊细胞壮举。地区
- 当您选择 SpecialCells(12) 或
SpecialCells(xlCellTypeVisible) 你选择的是可见的
细胞不是你需要的隐形细胞。
- 不知道到底发生了什么,但好像是 CountIf
不适用于非连续范围。
- 所以你可以循环遍历非连续范围内的范围使用
地区.
代码
Sub Count_hidden_ABC()
Dim s As Long
Dim Rg As Range
Dim rng As Range
Set Rg = Worksheets("Sheet1").Range("G8:G255")
For Each rng In Rg.SpecialCells(12).Areas
s = s + WorksheetFunction.CountIf(rng, "ABC")
Next
s = WorksheetFunction.CountIf(Rg, "ABC") - s
'Debug.Print s
End Sub
我想弄清楚如何编写 VBA 代码来计算我的范围内有多少单元格被隐藏并具有特定值。
我试过类似的方法,但没有用:
Sub Count_hidden_ABC()
Dim s As Long
Dim Rg As Range
Set Rg = Worksheets("Sheet1").Range("G8:G255")
s = Application.WorksheetFunction.CountIfs(Rg, "ABC", Rg, SpecialValues(12))
或
Sub Count_hidden_ABC()
Dim s As Long
Dim Rg As Range
Set Rg = Worksheets("Sheet1").Range("G8:G255")
s = Rg.SpecialCells(12).Application.WorksheetFunction.CountIf(Rg, "ABC")
有人知道怎么做吗?
您可以使用此代码作为基础,它计算指定范围内值为 "ABC"
的隐藏单元格:
Sub CountHiddenCellsInRange()
Dim rng As Range, hiddenCells As Long, c As Range
hiddenCells = 0
Set rng = Range("A1:B5")
For Each c In rng
If (Rows(c.Row).Hidden Or Columns(c.Column).Hidden) And c.Value = "ABC" Then hiddenCells = hiddenCells + 1
Next
MsgBox hiddenCells
End Sub
特殊细胞壮举。地区
- 当您选择 SpecialCells(12) 或 SpecialCells(xlCellTypeVisible) 你选择的是可见的 细胞不是你需要的隐形细胞。
- 不知道到底发生了什么,但好像是 CountIf 不适用于非连续范围。
- 所以你可以循环遍历非连续范围内的范围使用 地区.
代码
Sub Count_hidden_ABC()
Dim s As Long
Dim Rg As Range
Dim rng As Range
Set Rg = Worksheets("Sheet1").Range("G8:G255")
For Each rng In Rg.SpecialCells(12).Areas
s = s + WorksheetFunction.CountIf(rng, "ABC")
Next
s = WorksheetFunction.CountIf(Rg, "ABC") - s
'Debug.Print s
End Sub