powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Формирование формулы в ячейке из-под VBA
3 сообщений из 3, страница 1 из 1
Формирование формулы в ячейке из-под VBA
    #37170859
Гость12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток всем!
Столкнулся с такой проблемой - вроде и простая, но...
Надо в я чейку внести формулу из-под VBA-макроса. Сделал. Вот так работает нормально:
Код: plaintext
frml = "=R[0]C[-" & Trim(Str(zk1)) & "] * R[0]C[-" & Trim(Str(cn1)) & "]"
Т.е. - формула просто вычисляет произведение значений в двух других ячейках по относительной ссылке от данной ячейки - например, в формульной ячейке 14-ой строки это выглядит так: "=E14 * F14", и всё прекрасно работает.
Но вот проблема: если пользователь вносит в одну из исходных ячеек не число, а букву (от этих юзеров всего приходится ожидать:), то соответственно в формульной ячейке выдаётся ошибка #ЗНАЧ!
Если бы это решалось непосредственно в Экселе, то не было б ничего проще, ведь там есть функция Ч(), и достаточно было б просто изменить формулу таким образом: "=Ч(E14) * Ч(F14)". Но беда в том, что данный лист вместе с книгой формируется из-под VBA-макроса другой книги, и вот тот макрос как раз и извращает русскоязычную Эксель-функцию Ч(). Т.е., если в макросе задать:
frml = "= Ч( R[0]C[-" & Trim(Str(zk1)) & "] ) * Ч( R[0]C[-" & Trim(Str(cn1)) & "] ) "
то в Эксель это переносится вполне нормально, например, так: "=Ч(E14) * Ч(F14)", только это отображается в формульной строке, а в самой ячейке при этом выводится ошибка #ИМЯ? Причём, после щелчка по формульной строке и нажатия на Энтер - эта ошибка исчезает, и выводится нормальное значение. Но не щёлкать же ради этого на всех 5000 ячеек, заполненных аналогичной формулой!
Как заставить этот аглицкий VBA понимать наш "русский" Эксель? :) Или, может, есть какая-нибудь VBA-воспринимаемая функция, аналогичная русскоязычной Ч() ? (Val - не прокатит, её в формульную строку Экселя никак не передать).
Подскажите, пожалуйста.
...
Рейтинг: 0 / 0
Формирование формулы в ячейке из-под VBA
    #37170868
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость12может, есть какая-нибудь VBA-воспринимаемая функция, аналогичная русскоязычной Ч()
N()
...
Рейтинг: 0 / 0
Формирование формулы в ячейке из-под VBA
    #37170905
Гость12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Akina:
Невероятно, но - работает!!! :)
И главное, что VBA при переброске формулы в Эксель опять-таки её трансформирует к тому же русскоязычному виду, но теперь уже это воспринимается Экселем вполне нормально :)
Преогромнейшее Вам спасибо!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Формирование формулы в ячейке из-под VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]