этого код работает до тех пор, пока петли сталкиваются с значением пустой/ошибки ячеечной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
в настоящее время в соответствии с this page мы можем использовать 7, как Arg2 игнорировать скрытыми и ошибки. Я попытался, но он все еще дает ошибку 1004 в этой строке: medianvalue = WorksheetFunction.Aggregate(12, 5, Columns(2))
(обратите внимание, что я попытался 5 и 7, но по-прежнему та же ошибка). Я даже пытался установить все пустые ячейки, чтобы вызвать ошибку excel (# N/A), но безрезультатно. он работает до тех пор, пока он не встретится с ячейкой BLANK/error
У меня также есть вопрос с выходом результата. почему он отображает целое число? Раньше я работал над этим с использованием критериев автофильтрации (с texbox), и он отображает значение с десятичными знаками, но когда я зациклил его на целое число.
спасибо, ребята.
Вы можете добавить образец своих данных? Я пытаюсь воссоздать вашу проблему. –
Вы указали свою переменную как целое число, которое представляет собой целое число ... – Rory
Как сказал @Rory, изменилось 'Dim medianvalue As Integer' на' Dim medianvalue As Double' – R3uK