VBA - вызвать переопределенную функцию - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь извлечь первые 2 символа из строки в VBA, используя функцию Left.

Left("qwerty", 3) 

Обычно эта функция возвращает "qwe".Проблема в том же модуле, там определена другая функция Left:

Public Function Left(ByVal Text As String, ByVal Value As String)

Потому что, если я вызову

Left("qwerty", 3) 

, функция извлечет подстроку из "qwerty" изначало до строки "3" и будет возвращать пустую строку.

Мой вопрос: как я могу вызвать стандартную функцию Left, когда второй параметр является целым числом.

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Found.VBA.Left $ ("qwerty", 3)

VBA.Left ("qwerty", 3) по-прежнему вызывает пользовательскую функцию.

0 голосов
/ 25 февраля 2019

Не называйте свои собственные функции после существующих функций, поэтому переименуйте вашу текущую.Поскольку ваша функция вряд ли будет оптимизирована так же, как существующая, почему бы просто не использовать это?

Кроме того, используется типизированная функция

Left$(myString,3)

при использовании встроенных функций для строк, таких каккак Left.

Другой способ вызова Left - это:

VBA.Left$
...