2013-08-21 3 views
0

Я совершенно новый, чтобы преуспеть и пытаюсь заставить эту формулу Countif работать какое-то время. Я хочу, чтобы он отсчитывал от 12-й строки в столбце AN p до последней используемой строки. Я сейчас очень близко, но когда я запускаю макрос, он дает мне ошибку REF.Использование COUNTIF в VBA с последней строкой

Sub Date1() 
' 
' Enter Date 
' 

Range("B15") = InputBox("Enter Date") 


Dim LR As Long 
LR = Sheets("Design Risk Scoring Sheet").Range("AN" & Rows.count).End(xlUp).Row 

Range("B16").FormulaR1C1 = _ 
"=COUNTIF('Design Risk Scoring Sheet'!R[-4]C[38]:RC[38](" & LR & "), ""<"" & R[-1]C)" 

End Sub 

Это то, что я получаю в формуле ячейки при запуске макроса

=COUNTIF('Design Risk Scoring Sheet'!AN12:AN16(163), "<" & B15) 

Это в идеале должно быть AN163 вместо 16. Я попытался удалить RC [38] и положить, но вместо я получаю (163), который дает ошибку #name и если я удалить скобки в («& LR &»), то я получаю одиночные кавычки в формуле:

=COUNTIF('Design Risk Scoring Sheet'!AN12:'AN163', "<" & B15) 

Я не знаю, как решить эту проблему?

ответ

0

Alternate:

Sub Date1() 

    Dim sDate As String 

    sDate = InputBox("Enter Date", "Date Entry", Format(Now, "m/d/yyyy")) 
    If Len(sDate) = 0 Then Exit Sub 'Pressed cancel 

    If Not IsDate(sDate) Then 
     MsgBox "[" & sDate & "] is not a valid date.", , "Exiting Macro" 
     Exit Sub 
    End If 

    Range("B15").Value2 = DateValue(sDate) 
    Range("B16").Formula = "=COUNTIF(AN12:AN" & Cells(Rows.Count, "AN").End(xlUp).Row & ",""<""&B15)" 

End Sub 
+0

Благодаря он работал большой !! Единственное, что я добавил, это имя листа перед AN12: AN и Cells (строки ... потому что оно предназначено для выбора этого диапазона из другого листа. – AAli

+0

Когда я добавляю еще одну строку для Range («B17») для столбца BF вместо fo AN и keepign все остальное же, похоже, не работает. Мне интересно, если это потому, что BF содержит ячейки с ошибками #NA? Это влияет на функцию countif? – AAli

+0

Я только что протестировал ее, и она не должна ее вообще затрагивать. строка для B17 выглядит следующим образом: «Диапазон (« B17 »). Формула =« = COUNTIF («Лист оценки риска проектирования»! BF12: BF »и таблицы (« Лист оценки риска проектирования »). Ячейки (ряды. BF "). End (xlUp) .Row &", "" <"" и B15) "' – tigeravatar

0

Попробуйте это ..

Range("B16").FormulaR1C1 = _ 
"=COUNTIF('Design Risk Scoring Sheet'!R[-4]C[38]:RC[38](" & LR & "), < & R[-1]C)" 
Смежные вопросы