代码之家  ›  专栏  ›  技术社区  ›  Z117

VBA-计算隐藏且具有特定值的单元格数

  •  1
  • Z117  · 技术社区  · 6 年前

    我试图找出如何编写一个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")
    

    有人知道怎么做吗?

    2 回复  |  直到 6 年前
        1
  •  3
  •   JohnyL    6 年前

    特殊细胞专长。地区

    • 当您选择特殊单元格时( 12 )或 特殊细胞( xlCellTypeVisible )您正在选择“可见”选项 细胞不是你需要的隐形细胞。
    • 我不知道到底发生了什么,但看起来 条件统计
    • .

    代码

    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
    
        2
  •  0
  •   Michał Turczyn    6 年前

    您可以使用此代码作为基础,它计算值为的隐藏单元格 "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