[英]Creating a UDF for Count Ifs Visible and Multiple Criterias
目前我正在開發一個數據集,該數據集具有多個可以選擇的過濾條,並幫助搜索數據並提供滿足其要求的數量。 例如,通過選擇管理器和合作伙伴名稱,它可以查看數據表中的這些行。 我已經做了它,所以它將一個文本公式的字符串發布到框中,然后連接並使用UDF Eval強制執行(由於許多If和Else語句,需要對其進行細分。
問題是,當作業完成后,它們不會被刪除而是被隱藏。
如何讓這個數據表只用可見的方式進行Count Ifs搜索? 大概是它的UDF?
范圍從6:1000
以下是我所擁有的代碼的細分。 我需要找到一個函數來使這個代碼只在可見上工作。
我已經做了它,所以它將一個文本公式的字符串發布到框中,然后連接並使用UDF Eval強制執行(由於許多If和Else語句,需要對其進行細分。
問題是,當作業完成后,它們不會被刪除而是被隱藏。
如何讓這個數據表只用可見的方式進行Count Ifs搜索? 大概是它的UDF?
范圍從6:1000
以下是我所擁有的代碼的細分。 我需要找到一個函數來使這個代碼只在可見上工作。
Sub SetCriteria()
If Sheet8.Range("E6").Value = 1 Then
'The 1 is displayed if there is a value placed in the filter part of the dashboard. If not this value remains 0.
Sheet8.Range("F6") = "Tank!G6:G1000,Dashboard!C6,"
'If there is a value in the filter, then the writing for the CountIf formaul is displayed, linking to the criteria.
Else: Sheet8.Range("F6") = "Tank!G6:G1000,""*"","
'If there isn't anything placed in the critieria then a wild card is selected to ensure all option for that catergory are chosen.
End If
If Sheet8.Range("E7").Value = 1 Then
'Same as above, though this time for Task Manager.
Sheet8.Range("F7") = "Tank!I6:I1000,Dashboard!C7,"
Else: Sheet8.Range("F7") = "Tank!I6:I1000,""*"","
'The two different printed formulas, depending on criteria inclusion
End If
If Sheet8.Range("E8").Value = 1 Then
'Procedure for TAS Consultant
Sheet8.Range("F8") = "Tank!J6:J1000,Dashboard!C8,"
Else: Sheet8.Range("F8") = "Tank!J6:J1000,""*"","
End If
If Sheet8.Range("E9").Value = 1 Then
'Procedure for Pillar
Sheet8.Range("F9") = "Tank!H6:H1000,Dashboard!C9)"
Else: Sheet8.Range("F9") = "Tank!H6:H1000,""*"")"
End If
End Sub
編輯:這是我的評估功能
Function Eval(Ref As String)
Application.Volatile
Eval = Evaluate(Ref)
End Function
在數組公式下放入一個單元格,(Codename Sheet8是Sheetname Sheet8,我假設)用Ctrl + Shift + Enter關閉它
=SUM(SUBTOTAL(3,OFFSET(Tank!G6:G1000,ROW(Tank!G6:G1000)-MIN(ROW(Tank!G6:G1000)),,1))*(IF(Sheet8!E6=1,Tank!G6:G1000=Dashboard!C6,1))*(IF(Sheet8!E9=1,Tank!H6:H1000=Dashboard!C9,1))*(IF(Sheet8!E7=1,Tank!I6:I1000=Dashboard!C7,1))*(IF(Sheet8!E8=1,Tank!J6:J1000=Dashboard!C8)))
這個公式代替你的Sub setcriteria和你的Eval函數,你也可以像之前那樣將它分解並放入你的eval函數中。 (必須過濾不可見的行)
但是當你進入VBA路線時,看看你的范圍是否循環,只有可見的行,檢查標准和計數是否滿足。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.