2015-05-26 3 views
1

Я пытаюсь изучить и реализовать функцию в VBA с дополнительным аргументом. Я пытаюсь отделить значения в строке, заданной для символа или подстроки.Функция с необязательным параметром

Private Function SeperateString(MainString As String, Seperator As String) As String 
{ 

// Body 

} 

Например: Я хочу, чтобы отделить "1-2-3-4-5" с помощью Seperator "-" или "1/2/3/4/5" с помощью Seperator "/".

Я напишу логику с помощью Instr и других функций. Мое сомнение в том, что я хочу передать сепаратор, поэтому мне не нужно писать отдельную функцию для каждого, и хотите, чтобы «-» был по умолчанию, если ничего не передано. Я могу это сделать?

ответ

5

Предполагая, вы хотите установить Separator в качестве дополнительного параметра, попробуйте следующее:

Private Function SeperateString(MainString As String, _ 
      Optional Seperator As String = "-") As String 

'Body 
    SeperateString = "result of function" 
End Function 

Использование:

result = SeperateString("whatever-it-is") 'uses default separator 
result = SeperateString("whatever-it-is", "*") 'uses another separator 

https://msdn.microsoft.com/en-us/library/sect4ck6.aspx

7
Private Function SeparateString(MainString as String, 
           Optional Separator as String = "-") As String 

О, и это VBA , Нет {} и не //, но я уверен, что вы знаете, что ...

я бы предположить, однако, что использование Split(), вероятно, будет лучшим вариантом, чем писать свой собственный.

+1

++ Для избиения меня :) –

+0

@freeman Спасибо и да Я знаю это. Это была ошибка. – Meesha

4

Вы работаете в VBA, а не C#, так что покончите с этими фигурными фигурными скобками.

Момент ввода первой строки и нажмите Enter, то VBE автоматически добавит End Function

Private Function SeperateString(MainString As String, Seperator As String) As String 

End Function 

Чтобы сделать необязательный параметр, используйте ключевое слово Optional перед ним

Пример

Private Function SeperateString(MainString As String, Optional Seperator As String = "-") As String 

End Function 
+0

Спасибо @MatM :) –

Смежные вопросы