Я пытаюсь создать функцию, которая будет запускать цикл, который проверяет, существует ли у организации (var 'org') кампания, которая на самом деле началась, поэтому «If (< = Now() '. Существует неопределенное количество кампаний, которые я нахожу в электронной таблице с помощью «CountIf» и присваивается модулю как «total».Excel VBA Vlookup Ошибка выполнения 1004
В электронной таблице, когда ячейка, которая нуждается в чтобы действительная кампания обнаружила, что кампания, случайно угаданная в другой ячейке, недействительна, она переходит к функции VBA, предоставляя функции как идентификатора организации, так и общего количества кампаний в этой организации.
Мои коды:
Sub Macro()
Dim x
x = MacIDGen(111, 11)
End Sub
Function MacIDGen(org, total)
Dim iteration As Boolean, result As Range
For current = 1 To total
result = Application.WorksheetFunction.VLookup(org & " " & current, ActiveWorkbook.Sheets("Donations").Range("C:E"), 3, False)
If (result <= Now()) Then
MacIDGen = org & " " & current & " Test successful"
current = total
End If
Next current
End Function
Spreadsheet структура:
Org ID- Org Camp Count- Camp No.- Valid Camp No.
62 1 1 62 1
14 2 1 14 1
2 4 4 2 4
79 5 4 79 4
Во время отладки в редакторе VBA в runtime error 1004
культур вверх и при выполнении в таблице функция кажущаяся не делает ничего, и клетка принимает последнее действительное значение до довольно быстро освежающих клеток. Как я могу это исправить?
Попробуйте изменить тип результата с Range на Variant. VLookup() возвращает значения (строка, double) или тип ошибки. – Makah
Это было покрыто много раз раньше: –
[ЗДЕСЬ] (http://stackoverflow.com/questions/20593959/using-vlookup-from-a-vba-module-in-excel-to-check-if-value -is-in-table) является одним из примеров ... [ДРУГОЕ ОДИН] (http://stackoverflow.com/questions/19057369/vlookup-in-vba-within-a-for-loop) ... И [ДРУГОЙ ONE] (http://stackoverflow.com/questions/9634611/unable-to-get-the-lookup-property-of-the-workheetfunction-class) в тех же строках ... –