У меня есть эта функция для проверки пустой и непустой ячейки в VBA.Ошибка времени выполнения 91 в Excel VBA
Function toCheckBlanks(rng1 As String, rng2 As Range)
Dim iBlank&, iNonBlank& '& declare variables as long
Set main = ThisWorkbook.Sheets("Main")
Dim rng As Range
Set rng = Nothing
Set rng = main.Range(rng1 & [rng2].Find("*", , , , , xlPrevious).Row)
With WorksheetFunction
iNonBlank = .CountA(rng) 'count non-blank
iBlank = .CountBlank(rng) ' count blank
End With
If iBlank > 0 Then
toCheckBlanks = True
End If
Set rng = Nothing
End Function
Я пытался использовать его таким образом:
If toCheckBlanks("O23:O", Range("O23:O32")) Then exit sub
Эта строка возвращает ошибку:
Object variable or With block Variable not set
Set rng = main.Range(rng1 & [rng2].Find("*", , , , , xlPrevious).Row)
Но иногда, если я запускаю его, он не имеют ошибку, а в других случаях - ошибки. Любые головы?
Почему вы должны 'rng2' внутри скобок оценки? Почему бы просто не использовать 'Set rng = main.Range (rng1 & rng2.Find (" * ",,,,, xlPrevious) .Row)'? – YowE3K
@ YowE3K Я тоже пробовал это сделать. Он по-прежнему возвращает ту же ошибку. Спасибо :) – ramj
У вас есть что-то в ячейках 'O23: O32'? Если '.Find' ничего не найдет, он вернет ярость' Nothing'. – YowE3K