范围

时间:2015-06-05 07:03:59

标签: excel vba excel-vba

我有一个userform,它将文本框输入带入过滤查询:

Dim ws1 As Worksheet, ws2 As Worksheet
Dim kbnumber As String
Dim lastrow As Long



Set ws1 = Sheets("Incident")
Set ws2 = Sheets("KB Articles")

lastrow = ws1.Range("A" & Rows.Count).End(xlUp).Row


ws1.Range("M1:A" & lastrow).AutoFilter field:=13, Criteria1:=txtKB

ws1.Range("B" & Rows.Count).End(xlUp).Offset(1).Select

我可以过滤掉查询但我无法获得中位数。

基本上我试图使用以下方式获得中位数:

worksheetfunction.median(columns(2)) 

但它包含列的所有值,包括隐藏的值。

我需要有关如何正确实现.median函数的帮助。

感谢。

1 个答案:

答案 0 :(得分:2)

如果您使用的是Excel 2010,则原生工作表AGGREGATE function应该可用,

kbnumber = Application.Aggregate(12, 5, ws1.Columns(2))
' or,
kbnumber = WorksheetFunction.Aggregate(12, 5, ws1.Columns(2))

请参阅文档以获取AGGREGATE的完整功能列表和可用选项。