Ссылка, которую вы предоставили, ведет на страницу справки для VB Net, а не VBA. VBA и VB. Net похожи, но имеют очень разные варианты использования. VBA - это встроенный язык сценариев, используемый приложениями Microsoft Office. VB Net является полнопроходным. Net Язык, который имеет свои корни в VBA, но не используется приложением Office, если вы не укажете c надстройки или приложения VSTO.
Дополнительные аргументы в VBA работают нормально . Версия VBA примера кода, который вы предоставили выше:
Sub notify(ByVal company As String, Optional ByVal office As String = "QJZ")
If office = "QJZ" Then
Debug.print "office not supplied -- using Headquarters"
office = "Headquarters"
End If
' Insert code to notify headquarters or specified office.
End Sub
Вы также можете оказать всем нам небольшую услугу и научиться использовать разрыв строки, чтобы
Sub HighlightByFont(Optional ByVal highlightFont As Variant = "", Optional ByVal highlightColor As Variant = "", Optional ByVal highlightText As Variant = "", Optional ByVal matchWildcards As Variant = False, Optional ByVal useGUI As Variant = False, Optional ByVal highlightBold As Variant = False, Optional ByVal highlightItalic As Variant = False)
записывается как
Sub HighlightByFont _
( _
Optional ByVal highlightFont As Variant = "", _
Optional ByVal highlightColor As Variant = "", _
Optional ByVal highlightText As Variant = "", _
Optional ByVal matchWildcards As Variant = False, _
Optional ByVal useGUI As Variant = False, _
Optional ByVal highlightBold As Variant = False, _
Optional ByVal highlightItalic As Variant = False _
)
Вы также должны знать, что любые необязательные параметры, определенные с помощью значения по умолчанию, никогда не могут отсутствовать, и что иногда IsMissing является лучшим вариантом для использования, поскольку его невозможно предоставить разумное значение по умолчанию.