Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Замена символа "=" на "=" для обновления формулы - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Замена символа "=" на "=" для обновления формулы (Макросы/Sub)
Замена символа "=" на "=" для обновления формулы
juravl Дата: Понедельник, 15.02.2016, 12:46 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Всем привет!

Задача такая: 1С сохраняет таблицу на винт в формате xls. В этой таблице в некоторых клетках указаны формулы одного из двух видов:

1. "
Код
=RC[-1]*RC[-4]
" (перемножить две колонки, чтобы получить значение третьей)
2. "
Код
=СУММ(R[-82]C:R[-1]C)
" (поле "итого" в подвале)

После сохранения таблицы 1С (ввиду ее ограниченных возможностей) дополнительно открывает получившийся файл через OLE, дорисовывает в его модуль макрос и выполняет этот макрос:

[vba]
Код
Sub RenewEveryFormula()
Cells.Replace What:=""="", Replacement:=""="", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub"
[/vba];

Задача макроса - найти и заменить во всём файле символ "=" на "=" (макрос я записал через встроенный механизм икселя, вручную через ctrl+F заменив "=" на "=").

До выполнения макроса все клетки с формулами содержали в себе эти формулы в виде текстовых значений (=RC[-1]*RC[-4]). После выполнения макроса иксель хватается за голову и начинает видеть эти формулы именно как формулы. И всё это прекрасно работает и достаточно быстро, здесь проблем нет.

Проблемы есть с формулами итогов (
Код
=СУММ(R[-82]C:R[-1]C)
. Указанный макрос подмены знака равенства не заставляет иксель правильно отреагировать. Вместо этого иксель в этих клетках оставляет ошибку "#ИМЯ?". "Показать этапы вычисления" по этой функции - скриншот во вложении. Похоже, ему что-то не нравится в названии функции "сумм"?

Я пробовал запускать тот же макрос вручную в этом документе повторно - нет результата.
Пробовал снова через ctrl+F найти и заменить все "=" на "=" - результат корректный, все формулы, включая итоги, сразу определяются.

Кто-то сталкивался с такой ситуацией? Почему иксель ругается с ошибкой "#ИМЯ?" ?

p.s. то, что "сумм" написано маленькими буквами, не влияет на ситуацию (пробовал и с большими).
p.s.s. написать "sum" тоже не канает.
[moder]Используйте теги: для кода кнопка #, для формул кнопка fx[/moder]
К сообщению приложен файл: 0045057.png(13Kb)
 
Ответить
СообщениеВсем привет!

Задача такая: 1С сохраняет таблицу на винт в формате xls. В этой таблице в некоторых клетках указаны формулы одного из двух видов:

1. "
Код
=RC[-1]*RC[-4]
" (перемножить две колонки, чтобы получить значение третьей)
2. "
Код
=СУММ(R[-82]C:R[-1]C)
" (поле "итого" в подвале)

После сохранения таблицы 1С (ввиду ее ограниченных возможностей) дополнительно открывает получившийся файл через OLE, дорисовывает в его модуль макрос и выполняет этот макрос:

[vba]
Код
Sub RenewEveryFormula()
Cells.Replace What:=""="", Replacement:=""="", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub"
[/vba];

Задача макроса - найти и заменить во всём файле символ "=" на "=" (макрос я записал через встроенный механизм икселя, вручную через ctrl+F заменив "=" на "=").

До выполнения макроса все клетки с формулами содержали в себе эти формулы в виде текстовых значений (=RC[-1]*RC[-4]). После выполнения макроса иксель хватается за голову и начинает видеть эти формулы именно как формулы. И всё это прекрасно работает и достаточно быстро, здесь проблем нет.

Проблемы есть с формулами итогов (
Код
=СУММ(R[-82]C:R[-1]C)
. Указанный макрос подмены знака равенства не заставляет иксель правильно отреагировать. Вместо этого иксель в этих клетках оставляет ошибку "#ИМЯ?". "Показать этапы вычисления" по этой функции - скриншот во вложении. Похоже, ему что-то не нравится в названии функции "сумм"?

Я пробовал запускать тот же макрос вручную в этом документе повторно - нет результата.
Пробовал снова через ctrl+F найти и заменить все "=" на "=" - результат корректный, все формулы, включая итоги, сразу определяются.

Кто-то сталкивался с такой ситуацией? Почему иксель ругается с ошибкой "#ИМЯ?" ?

p.s. то, что "сумм" написано маленькими буквами, не влияет на ситуацию (пробовал и с большими).
p.s.s. написать "sum" тоже не канает.
[moder]Используйте теги: для кода кнопка #, для формул кнопка fx[/moder]

Автор - juravl
Дата добавления - 15.02.2016 в 12:46
Pelena Дата: Понедельник, 15.02.2016, 13:19 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 10385
Репутация: 2353 ±
Замечаний: 0% ±

Excel 2010 & Mac Excel 2011
Проверьте формулу на предмет русских/английских букв
сумм должно быть русскими, а С в диапазоне - английской


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеПроверьте формулу на предмет русских/английских букв
сумм должно быть русскими, а С в диапазоне - английской

Автор - Pelena
Дата добавления - 15.02.2016 в 13:19
Udik Дата: Понедельник, 15.02.2016, 13:49 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1293
Репутация: 161 ±
Замечаний: 0% ±

Excel 2013
А ячейки с формулами в случайном порядке располагаются? А то можно было бы на FormulaLocal записать.


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеА ячейки с формулами в случайном порядке располагаются? А то можно было бы на FormulaLocal записать.

Автор - Udik
Дата добавления - 15.02.2016 в 13:49
Nic70y Дата: Вторник, 16.02.2016, 09:10 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3655
Репутация: 752 ±
Замечаний: 0% ±

Excel 2013
=СУММ(R[-82]C:R[-1]C)
Вы ее сюда скопипастили?
у меня все норм отрабатывает.
покажите файл - сотрите все данные нафиг, оставьте только типаформулы, может чего и прояснится


ЯД(poison) 41001841029809
+7 978 049 98 74 (мтс)
 
Ответить
Сообщение
=СУММ(R[-82]C:R[-1]C)
Вы ее сюда скопипастили?
у меня все норм отрабатывает.
покажите файл - сотрите все данные нафиг, оставьте только типаформулы, может чего и прояснится

Автор - Nic70y
Дата добавления - 16.02.2016 в 09:10
IWI Дата: Вторник, 16.02.2016, 14:21 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
juravl, попробуйте добавить в конец макроса изменение формата ячейки на "общий" (ранее я так понял был "текст").


Сообщение отредактировал IWI - Вторник, 16.02.2016, 14:24
 
Ответить
Сообщениеjuravl, попробуйте добавить в конец макроса изменение формата ячейки на "общий" (ранее я так понял был "текст").

Автор - IWI
Дата добавления - 16.02.2016 в 14:21
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Замена символа "=" на "=" для обновления формулы (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!