[英]How to hide / show rows across multiple worksheets based on a cell value on another worksheet
[英]VBA: CountIfS function to count how many times a cell value is Yes across multiple worksheets IF another cell value
我是VBA的新手(本周),我正在使用代碼
Function myCountIf(rng As Range, criteria) As Long
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Summary-Sheet" And ws.Name <> "Notes" And ws.Name <> "Results" Then
myCountIf = myCountIf + WorksheetFunction.CountIf(ws.Range(rng.Address), criteria)
End If
Next ws
結束功能
但我想使用CountIfS函數計算多個工作表中單元格值為是的次數IF另一個單元格值(也是多個也是
我試過了:
=myCountIf(AND(I8="Yes",I7="Yes"))
但它不起作用
但:
=myCountIf(I8,"Yes")
工作正常
它可能非常簡單,如果是這樣,我很抱歉
這是一個小改動,為您提供兩個篩選條件:
Function myCountIfs(rng1 As Range, criteria1, rng2 As Range, criteria2) As Long
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Summary-Sheet" And ws.Name <> "Notes" And ws.Name <> "Results" Then
myCountIfs = myCountIfs + WorksheetFunction.CountIfs(ws.Range(rng1.Address), criteria1, ws.Range(rng2.Address), criteria2)
End If
Next ws
嘗試下面修改的UDF :
Option Explicit
Function myCountIfs(Rng1 As Range, Criteria1 As String, Rng2 As Range, Criteria2 As String) As Long
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Summary-Sheet", "Notes", "Results"
' do nothing
Case Else
myCountIfs = myCountIfs + Application.CountIfs(ws.Range(Rng1.Address), Criteria1, ws.Range(Rng2.Address), Criteria2)
End Select
Next ws
End Function
但是,為了從Excel工作表的單元格中調用它,請不要使用regular =myCountIf(AND(I8="Yes",I7="Yes"))
但下面的行:
=myCountIfs(I8,"Yes",I7,"Yes")
有關在Excel中使用此UDF的示例,請參見下面的屏幕截圖,單元格I7和I8中的所有工作表都為“YES”,但是其中一個工作表的名稱為“Note”,因此結果為2(而不是3)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.