Я пытаюсь определить, был ли передан opational параметр, но по какой-либо причине все обычные функции (IsMissing()/IsEmpty()/IsNull()) всегда возвращают false.Как определить, когда необязательный параметр ByRef не был отправлен
Это то, что я пытаюсь:
Public Sub SetValue(Key As String, Optional ByRef ws As Worksheet)
If IsMissing(ws) Or IsEmpty(ws) Or IsNull(ws) Then
ws = ThisWorkbook.Sheets(SheetName)
End If
Я также попытался установить WS в настоящее время или Null, но результат был тот же:
Public Sub SetValue(Key As String, Optional ByRef ws As Worksheet = Nothing)
If IsMissing(ws) Or IsEmpty(ws) Or IsNull(ws) Then
ws = ThisWorkbook.Sheets(SheetName)
End If
Любая идея, почему это может быть Происходило ?
+1 потому что этот ответ лучше, не может работать с пустым позже. Я обычно устанавливал его по умолчанию для 'activesheet' для подчиненных/функций, которые должны работать где угодно. –
То же самое здесь Патрик Я всегда ставил свой дополнительный лист в Activesheet, и я гарантирую, что он работает повсюду. –