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

Вход

Регистрация

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

 

= Мир MS Excel/excel не распознает автоматически формулу в теле макроса - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » excel не распознает автоматически формулу в теле макроса (Макросы/Sub)
excel не распознает автоматически формулу в теле макроса
Мурад Дата: Среда, 02.04.2014, 11:39 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Добрый день! Перед тем, как задать вопрос, пользовался поиском, но не нашел. Проблема для Вас наверняка муравьиная, но я не знаю как с ней справиться. Дело в чем. После создания кода на основании примера из книги, что мне посоветовал Gustav:

[vba]
Код
Range("b7").Select
ActiveCell.Formula = "=сумм(b2:b6)"
[/vba]

Excel выдает в ячейке b7 выражение "#ИМЯ?"
Естественно, в ячейках b2:b6 уже имеются значения, я просто не стал растягивать топ.
Необходимо ткнуть в ячейку b7, чтобы она посчитала сумму.
Нужно что-то менять в настройках excel, но не знаю где точно.
Прошу помочь :(


Сообщение отредактировал Мурад - Среда, 02.04.2014, 11:41
 
Ответить
СообщениеДобрый день! Перед тем, как задать вопрос, пользовался поиском, но не нашел. Проблема для Вас наверняка муравьиная, но я не знаю как с ней справиться. Дело в чем. После создания кода на основании примера из книги, что мне посоветовал Gustav:

[vba]
Код
Range("b7").Select
ActiveCell.Formula = "=сумм(b2:b6)"
[/vba]

Excel выдает в ячейке b7 выражение "#ИМЯ?"
Естественно, в ячейках b2:b6 уже имеются значения, я просто не стал растягивать топ.
Необходимо ткнуть в ячейку b7, чтобы она посчитала сумму.
Нужно что-то менять в настройках excel, но не знаю где точно.
Прошу помочь :(

Автор - Мурад
Дата добавления - 02.04.2014 в 11:39
Hugo Дата: Среда, 02.04.2014, 11:49 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
[vba]
Код
Range("b7").Select
ActiveCell.FormulaLocal = "=сумм(b2:b6)"
[/vba]
Это если Ваш эксель русский.

А в общем случае нужно писать на английском:
[vba]
Код
    Range("b7").Select
      ActiveCell.Formula = "=sum(b2:b6)"
[/vba]

Как пишется формула на английском - узнать легко так: курсор в ячейке, в debug.window пишите/вводите
?activecell.Formula
там же читаете ответ.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
Сообщение[vba]
Код
Range("b7").Select
ActiveCell.FormulaLocal = "=сумм(b2:b6)"
[/vba]
Это если Ваш эксель русский.

А в общем случае нужно писать на английском:
[vba]
Код
    Range("b7").Select
      ActiveCell.Formula = "=sum(b2:b6)"
[/vba]

Как пишется формула на английском - узнать легко так: курсор в ячейке, в debug.window пишите/вводите
?activecell.Formula
там же читаете ответ.

Автор - Hugo
Дата добавления - 02.04.2014 в 11:49
Мурад Дата: Среда, 02.04.2014, 12:03 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Hugo, у меня действительно русский Excel. Получается, надо будет каждую формулу подправлять из примеров в книге, чтобы макрос работал как надо.
Ответьте, пожалуйста, еще на такой вопрос. Если надо распространить действие макроса на все листы в книге, какой функцией или действием это сделать, если имеется готовый макрос для активного листа? Допустим, программа заносит вводимые в форму значения в ячейки b2:b6 одновременно на всех имеющихся листах и внизу приводит сумму.
 
Ответить
СообщениеHugo, у меня действительно русский Excel. Получается, надо будет каждую формулу подправлять из примеров в книге, чтобы макрос работал как надо.
Ответьте, пожалуйста, еще на такой вопрос. Если надо распространить действие макроса на все листы в книге, какой функцией или действием это сделать, если имеется готовый макрос для активного листа? Допустим, программа заносит вводимые в форму значения в ячейки b2:b6 одновременно на всех имеющихся листах и внизу приводит сумму.

Автор - Мурад
Дата добавления - 02.04.2014 в 12:03
Hugo Дата: Среда, 02.04.2014, 12:12 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Перебор всех листов книги (или только заранее определённые в коде), в каждый лист пишем что задумано.
Можно в цикле перебора проверять что-то у листа (название, данные) и отбирать только нужные листы.
При этом активировать листы не нужно. Ну это конечно смотря как написан макрос.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеПеребор всех листов книги (или только заранее определённые в коде), в каждый лист пишем что задумано.
Можно в цикле перебора проверять что-то у листа (название, данные) и отбирать только нужные листы.
При этом активировать листы не нужно. Ну это конечно смотря как написан макрос.

Автор - Hugo
Дата добавления - 02.04.2014 в 12:12
KuklP Дата: Среда, 02.04.2014, 12:14 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Замените:
[vba]
Код
ActiveCell.Formula
[/vba]
на :
[vba]
Код
ActiveCell.Formulalocal
[/vba]
и все. :D


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеЗамените:
[vba]
Код
ActiveCell.Formula
[/vba]
на :
[vba]
Код
ActiveCell.Formulalocal
[/vba]
и все. :D

Автор - KuklP
Дата добавления - 02.04.2014 в 12:14
_Boroda_ Дата: Среда, 02.04.2014, 12:33 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Допустим, программа заносит вводимые в форму значения в ячейки b2:b6 одновременно на всех имеющихся листах и внизу приводит сумму.

или что-то типа этого
[vba]
Код
    Sheets(Array("Лист1", "Лист2", "Лист3")).Select
     ActiveCell.Formula = "=SUM(b2:b6)"
     Sheets("Лист1").Select
[/vba][


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Допустим, программа заносит вводимые в форму значения в ячейки b2:b6 одновременно на всех имеющихся листах и внизу приводит сумму.

или что-то типа этого
[vba]
Код
    Sheets(Array("Лист1", "Лист2", "Лист3")).Select
     ActiveCell.Formula = "=SUM(b2:b6)"
     Sheets("Лист1").Select
[/vba][

Автор - _Boroda_
Дата добавления - 02.04.2014 в 12:33
Мурад Дата: Среда, 02.04.2014, 12:43 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Я данный вопрос про все листы задаю, потому что у меня будет стоять задача выполнить определенную комбинацию действий на всех листах. Несколько файлов в папке d:\Таблицы - a1.xlsx, a2.xlsx, a3.xlsx, в каждом 20, 50 и 10 листов соответственно. На каждом листе одинаковая структура и формат таблиц. Имеется записанный макрос, неважно какой (допустим, выделяет фон заголовка в желтый цвет). Какими процедурами дополнить тело макроса, чтобы при его запуске действие применилось ко всем таблицам на листах?
 
Ответить
СообщениеЯ данный вопрос про все листы задаю, потому что у меня будет стоять задача выполнить определенную комбинацию действий на всех листах. Несколько файлов в папке d:\Таблицы - a1.xlsx, a2.xlsx, a3.xlsx, в каждом 20, 50 и 10 листов соответственно. На каждом листе одинаковая структура и формат таблиц. Имеется записанный макрос, неважно какой (допустим, выделяет фон заголовка в желтый цвет). Какими процедурами дополнить тело макроса, чтобы при его запуске действие применилось ко всем таблицам на листах?

Автор - Мурад
Дата добавления - 02.04.2014 в 12:43
_Boroda_ Дата: Среда, 02.04.2014, 12:44 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Какими процедурами дополнить тело макроса, чтобы при его запуске действие применилось ко всем таблицам на листах?

Sheets(Array("Лист1", "Лист2", "Лист3")).Select


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Какими процедурами дополнить тело макроса, чтобы при его запуске действие применилось ко всем таблицам на листах?

Sheets(Array("Лист1", "Лист2", "Лист3")).Select

Автор - _Boroda_
Дата добавления - 02.04.2014 в 12:44
Hugo Дата: Среда, 02.04.2014, 12:51 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
_Boroda_, для такого кода сперва нужно циклом перебрать все листы и определить все названия листов :) И так для каждого файла отдельно.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
Сообщение_Boroda_, для такого кода сперва нужно циклом перебрать все листы и определить все названия листов :) И так для каждого файла отдельно.

Автор - Hugo
Дата добавления - 02.04.2014 в 12:51
_Boroda_ Дата: Среда, 02.04.2014, 12:56 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
циклом перебрать все листы и определить все названия листов

Ну да, типа того. Но это же быстрее, чем на каждый лист формулы ставить отдельно, если листов
в каждом 20, 50 и 10 листов соответственно


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
циклом перебрать все листы и определить все названия листов

Ну да, типа того. Но это же быстрее, чем на каждый лист формулы ставить отдельно, если листов
в каждом 20, 50 и 10 листов соответственно

Автор - _Boroda_
Дата добавления - 02.04.2014 в 12:56
Hugo Дата: Среда, 02.04.2014, 13:13 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Ну если все - то просто
[vba]
Код
Sheets().Select
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеНу если все - то просто
[vba]
Код
Sheets().Select
[/vba]

Автор - Hugo
Дата добавления - 02.04.2014 в 13:13
Hugo Дата: Среда, 02.04.2014, 13:28 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
[vba]
Код
    Sheets(1).Select
     Range("C5").Select
     Sheets().Select
     ActiveCell.Formula = "=SUM(b2:b6)"
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
Сообщение[vba]
Код
    Sheets(1).Select
     Range("C5").Select
     Sheets().Select
     ActiveCell.Formula = "=SUM(b2:b6)"
[/vba]

Автор - Hugo
Дата добавления - 02.04.2014 в 13:28
Мурад Дата: Среда, 02.04.2014, 13:50 | Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Hugo, спасибо огромное за труды! Буду совершенствоваться дальше в области VBA в надежде помочь новичкам своими знаниями.
Мне помогла простая вставка Sheets().Select перед процессом запроса данных для суммирования.
Теперь буду пытаться сделать невозможное :)
C:\Users\aaa\Documents\Tables.Workbooks().Sheets().Select :)


Сообщение отредактировал Мурад - Среда, 02.04.2014, 13:57
 
Ответить
СообщениеHugo, спасибо огромное за труды! Буду совершенствоваться дальше в области VBA в надежде помочь новичкам своими знаниями.
Мне помогла простая вставка Sheets().Select перед процессом запроса данных для суммирования.
Теперь буду пытаться сделать невозможное :)
C:\Users\aaa\Documents\Tables.Workbooks().Sheets().Select :)

Автор - Мурад
Дата добавления - 02.04.2014 в 13:50
Hugo Дата: Среда, 02.04.2014, 14:00 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Только Select и ActiveCell - это плохая практика :)

P.S. C:\Users\aaa\Documents\Tables.Workbooks().Sheets().Select в любом случае не пойдёт. Нужно каждый файл индивидуально открыть.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеТолько Select и ActiveCell - это плохая практика :)

P.S. C:\Users\aaa\Documents\Tables.Workbooks().Sheets().Select в любом случае не пойдёт. Нужно каждый файл индивидуально открыть.

Автор - Hugo
Дата добавления - 02.04.2014 в 14:00
Мир MS Excel » Вопросы и решения » Вопросы по VBA » excel не распознает автоматически формулу в теле макроса (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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