Задача такая: 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]
Всем привет!
Задача такая: 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
Вы ее сюда скопипастили? у меня все норм отрабатывает. покажите файл - сотрите все данные нафиг, оставьте только типаформулы, может чего и прояснитсяNic70y