|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
12.11.2008, 15:08 | #1 |
Пользователь
Регистрация: 16.05.2008
Сообщений: 73
|
Выполнение макроса во всех листах
Народ, приветствую!
Подскажите как организовать выполнение макроса во всех листах книги Пытался через Код:
|
12.11.2008, 15:21 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Код:
|
12.11.2008, 15:28 | #3 |
Пользователь
Регистрация: 29.12.2007
Сообщений: 71
|
Sub Макрос2()
Dim i As Variant For i = 1 To 3 Worksheets(i).Select Макрос3 Next i End Sub |
12.11.2008, 16:33 | #4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
2 StasSv
а если в книге 2 листа?
при i = 3, макрос вывалится с ошибкой Run Time Error9 на строке Worksheets(i).Select а если в книге 4 листа? (4-й лист окажется за циклом) код переписывать? увы, это не решение задачи...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
12.11.2008, 16:52 | #5 |
Пользователь
Регистрация: 16.05.2008
Сообщений: 73
|
Народ, не получается заставить макрос применяться ко всем листам в книге... замучался уже.
Подскажите как решить... |
12.11.2008, 18:38 | #6 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Такие есть предлжения:
1) или в теле цикла по листам (For Each sh In Worksheets...) следующей строчкой написать sh.Activate 2) или везде, в теле цикла перед всякий упоминанием ячеек (Range, Cells и пр.) писать "sh." например, было: Range("A3").Select надо: sh.Range("A3").Select было:Cells(ActiveCell.Row, ActiveCell.Column).Offset(1, 0).Select надо:sh.Cells(sh.ActiveCell.Row, sh.ActiveCell.Column).Offset(1, 0).Select на мой взгляд 1-й вариант потребует меньшее количество исправлений, но я не очень внимательно всматривался в код, возможно там есть перенос данных с листа на лист. Тогда необходимо отследить эти вещи где это нужно явно указывать с какой книги и листа данные. удачи!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
13.11.2008, 04:06 | #7 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Кусок кода из файла:
Код:
Сразу пишите A = GetDateFromFileName(Fi) А команду Workbooks.Open Fi поставьте в код в том месте, где нужны будут данные из листов этого файла. Кроме того, код Код:
Код:
Далее следует код For j = 1 To 14 'заполнение дат составления скидочной таблицы ...................... Next j логика работы которого мне не совсем понятна... Особенно часть For i = 1 To 2: Selection.End(xlDown).Select: Next i Если объясните, что должен делать код, тогда и станет возможным его корректировать. Пока же, я толком и не понял, следует перебирать листы этого файла (thisworkbook), или только что открытого (activeworkbook)... В итоге будет что-то вроде такого: Код:
|
13.11.2008, 11:30 | #8 |
Старожил
Регистрация: 12.05.2007
Сообщений: 2,339
|
У меня это организовано, так:
Код:
Последний раз редактировалось valerij; 13.11.2008 в 11:35. |
13.11.2008, 11:37 | #9 |
Пользователь
Регистрация: 16.05.2008
Сообщений: 73
|
Sub test()
Dim sh As Worksheet For Each sh In ThisWorkbook.Worksheets Range("d3").Value = "ТЕСТ" Next sh End Sub Пытаюсь протеститровать этот код... но он НЕ выполняется НА ВСЕХ СТРАНИЦАХ, а только на первой, и на этом цикл прекращается... |
13.11.2008, 11:37 | #10 |
Пользователь
Регистрация: 16.05.2008
Сообщений: 73
|
Код:
Пытаюсь протеститровать этот код... но он НЕ выполняется НА ВСЕХ СТРАНИЦАХ, а только на первой, и на этом цикл прекращается... |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Help! Как проверить наличие "рисунков" в листах книги? | Bezdar | Microsoft Office Excel | 4 | 15.08.2008 15:09 |
Выполнение функции | nikleb | JavaScript, Ajax | 7 | 10.08.2008 01:49 |
image. печать большого изображения на нескольких листах | OLEG'arh | Общие вопросы Delphi | 1 | 20.06.2008 13:06 |
Суммесли и диапазоны на листах | _ДЭН_78 | Microsoft Office Excel | 1 | 18.09.2007 15:38 |
Одна "шапка" на всех листах | Noor | Microsoft Office Excel | 2 | 30.07.2007 15:39 |