Private Sub CommandButton1_Click()
mode_rate = WorksheetFunction.Mode(Sheets("RVW Data").Range("AL2:AL9000").SpecialCells(xlCellTypeVisible))
Sheets("Template").Range("L1") = mode_rate
End Sub
我已使用上面的代码计算过滤数据的模式,但它无效。
请任何帮助
答案 0 :(得分:0)
你遇到的问题是由于范围对象。 如果您没有过滤数据,那么您给出 .Mode函数的范围的地址就像
但如果您过滤数据并隐藏了某些行,则范围的地址将如下所示:
模式函数会出现错误,因为他无法正确处理值。 您必须添加临时表,您只能复制可见行,然后将此数据用于模式功能。
您可以在下面的代码中看到我是如何做到的。
Public Sub CommandButton1_Click()
Dim rng As Excel.Range
Dim ws As Worksheet
Dim wsTemp As Worksheet
Set ws = Sheets("RVW Data")
Application.Worksheets.Add
ActiveSheet.Name = "Temp"
Set wsTemp = ActiveSheet
ws.Range("AL2:AL9000").SpecialCells(xlCellTypeVisible).Copy _
Destination:=wsTemp.Range("A1")
Set rng = wsTemp.Columns(1)
mode_rate = WorksheetFunction.Mode(wsTemp.Range("A1:A9000"))
Sheets("Template").Range("L1") = mode_rate
Application.DisplayAlerts = False
wsTemp.Delete
Application.DisplayAlerts = True
End Sub