Страницы: 1
RSS
Установка из VBA в ячейку функции, написанной кириллицей, При вводе функции, написанной кириллицей подставляется знак "собака" (@)
 
Коллеги, здравствуйте! Столкнулся с тем, что при внесении в ячейку функции (для примера СЛЧИС), написанной кириллицей:

Public Sub Случайное_число()
   Dim S As Range
   Set S = Worksheets("Лист1").Range("A1:D5")
   S.Formula = "=СЛЧИС()"
   S.Font.Bold = True
End Sub

в ячейке к ней добавляется символ "@":  =@СЛЧИС() и выдаётся ошибка.

Если указать функцию RAND() ( S.Formula = "=RAND()"), всё отрабатывает штатно.

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

Заранее благодарен.

Примеры со СЛЧИС и RAND прилагаю
 
Связано с тем, что свойство Formula всегда воспринимается в английской локализации. НО. Если хотите записать формулу на своей локализации(той, что на момент выполнения макроса указана для Excel) - используйте свойство FormulaLocal. Но это не рекомендуется, т.к. на других ПК с локализацией, отличной от Вашей это вызовет ту же ошибку, что Вы описали.
А знак собаки появляется потому, что у Вас новая версия Excel, которая поддерживает символ неявного пересечения областей. И т.к. Excel на момент записи в ячейку формулы не может определить её и вычислить - он подставляет знак собаки, чтобы указать только на одну ячейку.
Изменено: Дмитрий(The_Prist) Щербаков - 27.09.2022 16:07:59
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
S.Formula = "=RAND()"
 
Дмитрий(The_Prist) Щербаков, Спасибо огромное за помошь!
Страницы: 1
Наверх