worksheetfunction.aggregate忽略隐藏/错误/ 0值

此代码一直运行,直到循环遇到空白/错误的单元格值

Dim ws1 As Worksheet, wstest As Worksheet, wskb As Worksheet Dim lastrowinc As Long, curRow As Long, lastrowkb As Long Dim medianvalue As Integer Dim critvalue As String 'Sheet to look up Critvalue Set ws1 = Sheets("Incident") 'Sheet where to store Medianvalue Set wstest = Sheets("Sheet3") 'Sheet where to get Critvalue (A2 onwards) Set wskb = Sheets("KB Articles") 'For autofilter criteria lastrowinc = ws1.Range("A" & Rows.Count).End(xlUp).Row lastrowkb = wskb.Range("A" & Rows.Count).End(xlUp).Row For curRow = 2 To lastrowkb critvalue = wskb.Range("A" & curRow).Value ws1.Range("M1:A" & lastrowinc).AutoFilter field:=13, Criteria1:=critvalue medianvalue = WorksheetFunction.Aggregate(12, 5, Columns(2)) wstest.Range("A" & Rows.Count).End(xlUp).Offset(1) = medianvalue Next curRow 

现在根据这个页面我们可以使用7作为Arg2来忽略隐藏和错误。 我试过,但它仍然给这条线上的错误1004: medianvalue = WorksheetFunction.Aggregate(12, 5, Columns(2)) (注意我试过5和7,但仍然是相同的错误)。 我什至试图设置所有空白单元格导致Excel错误(#N / A),但无济于事。 它工作,直到它遇到一个BLANK /错误单元格

我也有一个结果输出的问题。 为什么显示一个整数? 我有一个手动自动筛选条件之前(与一个texbox),它显示的值与小数,但当我打了一个整数。

多谢你们。

您可以使用Countfunctiontesting是否存在至less一个数字值。

 If WorksheetFunction.Count(ws1.Columns(2).SpecialCells(xlCellTypeVisible)) > 0 Then medianvalue = WorksheetFunction.Aggregate(12, 5, ws1.Columns(2)) Else medianvalue = some value that is meaningful to you End If