Некоторые предопределенные методы и функции VBA требуют, чтобы им была передана определенная константа, например:
Application.Calculation = xlCalculationAutomatic
.cells(i,j).End(xlUp).Row
.PpParagraphAlignment = ppAlignCenter
В этих фрагментах константами являются xlCalculationAutomatic , xlUp и ppAlignCenter .
Когда вызывается функция / метод и запрашивается заполнение аргумента, VBE Intellisense обычно предлагает выпадающий список допустимых констант для выбора.
Есть ли способ достичь того же с помощью моих собственных подпрограмм и функций?Например, в приведенном ниже случае аргумент "sRowOrCol" требует, чтобы пользователь в настоящее время набирал литералы "Row" или "Col", однако я хотел бы предложить пользователю выпадающий список, содержащий, например, "xlRow" и "xlCol".
Function FindLast(ws As Worksheet, sRowOrCol As String, iColRow As Long)
If sRowOrCol = "Row" Then
FindLast = ws.Cells(ws.Rows.Count, iColRow).End(xlUp).Row
Exit Function
ElseIf sRowOrCol = "Col" Then
FindLast = ws.Cells(iColRow, ws.Columns.Count).End(xlToLeft).Column
Exit Function
Else
MsgBox "Invalid argument"
End If
End Function