|
Вставка формул макросом, находясь на другом листе книги
|
|||
---|---|---|---|
#18+
Всех поздравляю с Новым годом! Ребята. Как изменить данный макрос, чтобы он вставлял формулы только на конкретном листе? То есть. Запускаем иакрос кнопкой «пуск», расположенной на Лист1. А формулы вставляем в закрашенные ячейки на листе «Итог». Подмогните, плиз! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2013, 17:39 |
|
Вставка формул макросом, находясь на другом листе книги
|
|||
---|---|---|---|
#18+
Агентизменить данный макрос, чтобы он вставлял формулы только на конкретном листе? Очевидно, что надо указать этот лист :) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2013, 17:43 |
|
Вставка формул макросом, находясь на другом листе книги
|
|||
---|---|---|---|
#18+
СПАСИБО, работает. Но, проявляется следующая, нежеланная особенность. Когда запускаю макрос находясь на самом листе "Итог", то формулі вставляются во все закрашенные ячейки. А с Лист1 - заполняются только по пятую строку. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2013, 18:09 |
|
Вставка формул макросом, находясь на другом листе книги
|
|||
---|---|---|---|
#18+
Муля, я рад) А что надо-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2013, 18:13 |
|
Вставка формул макросом, находясь на другом листе книги
|
|||
---|---|---|---|
#18+
Serge 007,тоже вас приветсьвую! Это я докумекал сам. А еще бы мне, нужно как то изменить саму структуру макроса. Чтобы несколько раз не писать \ With Sheets("Итог").Range и так далее ...End With. Поскольку нужно задествовать в работу еще 2 столбца. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2013, 18:28 |
|
Вставка формул макросом, находясь на другом листе книги
|
|||
---|---|---|---|
#18+
И чё? Агентнесколько раз не писать \ With Sheets("Итог").Range и так далее Это оптимально, что надо-то? Чтоб Экс мысли читал? Такого пока не будет... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2013, 18:36 |
|
Вставка формул макросом, находясь на другом листе книги
|
|||
---|---|---|---|
#18+
Сергей немного неверно привел макрос - последняя строка явно будет вычислена для текущего листа. Правильнее примерно так: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
не проверял, писал сразу в форум. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2013, 13:06 |
|
Вставка формул макросом, находясь на другом листе книги
|
|||
---|---|---|---|
#18+
The_PristСергей немного неверно привел макрос Тебе виднее :) The_Pristпоследняя строка явно будет вычислена для текущего листа. Можешь пояснить? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2013, 14:53 |
|
Вставка формул макросом, находясь на другом листе книги
|
|||
---|---|---|---|
#18+
Приветствую и поздравляю всех с праздниками! Ув. The_Prist, СПАСИБО! Макрос работает как часы. И позвольте задать маленький попутный вопросик. Если я правильно понимаю, сейчас "мерилоМ" или "ориентиром", до какой именно строки макрос вставляет формулы, является заполненость первого столбца. И, собсьвенно, вопрос. А если у меня в рабочем файле первый столбец не заполняется даными, как поменять "ориентир" на любой другой, заполненый столбец? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2013, 16:24 |
|
Вставка формул макросом, находясь на другом листе книги
|
|||
---|---|---|---|
#18+
Отбой! Разобрался, с проблемой. Еще раз СПАСИБО за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2013, 19:12 |
|
Вставка формул макросом, находясь на другом листе книги
|
|||
---|---|---|---|
#18+
Serge 007Можешь пояснить? Попробую пояснить. По умолчанию для всех объектов родительским объектом является текущий объект(если он может быть использован в качестве родителя). Т.е. если для ячейки не указать явно лист, к которому она относится, в качестве родительского листа для неё будет использован текущий(за исключением случаев, когда код записан в модуле листа - тогда в качестве родителя будет использован лист, в котором записан код). В конструкциях типа Range(Cells(,),Cells(,)) Range является контейнером, в котором указываются ссылки на объекты, из которых и будет создана ссылка на непосредственно конечный объект. Предположим, что активен "Лист1", а код запущен с листа "Итог". Если запись будет вида Код: vbnet 1.
это вызовет ошибку(контейнер и объекты внутри него не могут располагаться на разных листах), равно как и Код: vbnet 1.
и Код: vbnet 1.
т.к. ссылки на объекты внутри контейнера относятся к разным листам. А вот такие записи будут правильными: Код: vbnet 1. 2.
Вторая запись не содержит ссылки на родителя для Range, но ошибки это не вызовет - т.к. если для контейнера ссылка не указана, а для двух объектов внутри контейнера родитель один - он будет применен и для самого контейнера. Если запись будет вида Range("A1","A10"), то указывать ссылку на родителя внутри Range не обязательно - достаточно будет указать эту ссылку перед самим Range - Sheets("Итог").Range("A1","A10"), т.к. текстовое представление адреса внутри Range обязывает создать ссылку именно на родителя контейнера. В примере Serge 007: Код: vbnet 1. 2. 3.
Запись смешанная - и текстовое представление адреса ячейки и ссылка на объект Cells. В данном случае явную ошибку код не вызовет, но и работает не всегда так, как хотелось бы. Sheets("Итог").Range("E2:E" - создается ссылка на столбец Е листа Итог. Но далее идет вычисление последней строки первого столбца. И вот как раз это вычисление происходит на основе объекта Cells, который не содержит в себе ссылки на родительский объект. А значит он будет вычислять последнюю строку исключительно для текущего листа(если код записан в стандартном модуле). Правильно было бы записать тогда так: Код: vbnet 1. 2. 3.
Надеюсь, что мне удалось дать достаточно развернутый и доступный для понимания ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2013, 10:33 |
|
Вставка формул макросом, находясь на другом листе книги
|
|||
---|---|---|---|
#18+
Да, Дим, спасибо Всё по полочкам ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2013, 13:06 |
|
|
start [/forum/topic.php?fid=61&msg=38100191&tid=2175100]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 327ms |
total: | 480ms |
0 / 0 |