Создание функции по-русски

Автор TanaTiX, 11 апреля 2022, 14:01

0 Пользователи и 1 гость просматривают эту тему.

TanaTiX

Обсуждал в одном телеграмм-канале, но что-то не до конца разобрался. А тут еще и потомкам останется. Как создать свою функцию по-русски?
К примеру (содержимое функции значения на данном этапе не имеет):
Function Название()
   Название = "какой-то текст"
End Function


economist


Option VBASupport 1
'-----------------------------------------------
Function СУММОЧКА(a as range) as double
ThisComponent.BasicLibraries.VBACompatibilityMode=true  
For each n in a
s = s + n.value
Next n
СУММОЧКА = s
End Function
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

mikekaganski

Используйте Option Compatible.

А лучше - не делайте так. Пожалуйста. Это ж какой-то кошмар - как люди стараются сделать что-то, чтобы их код был просто невозможно прочесть. Код по-корейски, по-немецки, по-тайски ... "Я хочу, чтобы только носители языка могли это прочитать - особенно чтобы никто из иноязычных специалистов мог разобраться и помочь мне".
С уважением,
Михаил Каганский

sokol92

Дополнение к ответу Михаила. В Excel использование русских букв в названиях функций приводит к катастрофе, если макрос исполняется на компьютере с другой кодовой таблицей по умолчанию (то есть, отличной от Windows-1252).
Владимир.

rami

Нужно заключить не латинские символы в квадратные скобки (Option Compatible не нужно):

Function [Название]()
Dim [;D] As String
   [;D] = "Смайлик и "
   [Название] = [;D] & "какой-то текст"
End Function


Цитата: mikekaganski от 11 апреля 2022, 14:12А лучше - не делайте так.
Полностью согласен.

TanaTiX

mikekaganski, я пишу код для себя, для очень узкой задачи, которую, уверен почти на 100%, в таком виде решать никто не будет. Основная суть работы - создание текста из разных частей, русскоязычного текста - и я замахаюсь переключать язык при вводе формул. В крайнем случае можно дублировать функцию на 2х языках, это точно не проблема.
И да, если бы я писал в другой программе на js, C# и пр., то скорее всего так бы и было. Это 1й случай, когда мне предпочтительней кодить по-русски.
rami, спасибо, но пока пробовал либру пару раз выкинуло.
Буду пробовать, тестировать.

economist

Цитата: TanaTiX от 11 апреля 2022, 17:43замахаюсь переключать язык при вводе формул

Программы-"кейлоггеры" типа PuntoSwitcher позволяют набирать текст на любом языке не глядя, ведь программа сама переключает раскладку. Если она ошиблась - жмем PauseBreak и все становится как надо. В 99% случаев опечатывается человек, а нее PuntoSwitcher, но признаваться в этом никто не хочет. 
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

TanaTiX

Было у меня общение с подобным софтом - больше не хочется. Косячить - так самому. А то тот самый 1% будет как раз тогда, когда 100% должно быть верно, а не 99.