Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2009, 09:55   #1
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию Одинаковые действия на нескольких листах

Мне необходимо заменить одинаковые формулы на разных листах. Как это сделать без обозначения листа и прописывания действий под каждым?
ruavia3 вне форума Ответить с цитированием
Старый 10.04.2009, 10:17   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно написать макрос, который, например, будет выводить на экран запрос с двумя полями для ввода. 1-е - формула, которую меняем, 2-е - формула, которой заменяем первую. Жмем кнопку и во всех листах (или, если требуется, в указанных) происходит замена. Устроит?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 10.04.2009, 10:22   #3
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Поиск и замена.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 10.04.2009, 12:07   #4
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

SAS888, привет.
Было бы здорово с формами, но ведь их нужно привязывать к книге? Действия аналогичны: нажатию Ctrl+F - Replace (Workbook)

У меня уже есть макрос, который работает примерно так:

Sheets("Sheet1").Select
Cells.Select
Selection.Replace What:="Jan''09\[file1.xls]", Replacement:="Jan''09\[file2.xls]" _
, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat _
:=False, ReplaceFormat:=False

и так далее заменяет 7 формул на листе, потом обозначает следующий лист - Sheets("Sheet2").Select и делает такие же действия.


Вопрос, можно как-нибудь задать блок формул ( 1 формула меняется на 2 формулу, 3 меняется на 4 и т.д.) и применить этот блок замены ко всем листам книги.xls?
ruavia3 вне форума Ответить с цитированием
Старый 10.04.2009, 14:08   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Откройте Файл. Запустите макрос "Замена_Формул".
Будет выведена форма для заполнения. В ComboBox нужно выбрать файл, в котором требуется заменить формулы (или просто значения). Список файлов будет сформирован из всех открытых книг. Затем в левый TextBox записываем формулу, которую нужно заменить и жмем "ОК". В правый TextBox - то, чем требуется заменить и тоже жмем "ОК". Введенные значения будут заноситься в соответствующие ListBox-ы. После того, как ввод завершен - нажмите "Произвести замену".
Если не выбрана книга, или ListBox-ы пусты, или количество строк, введенных в правую и левую часть, разное, то операция замены произведена не будет (об этом будет выведено сообщение).
Вложения
Тип файла: rar Формулы.rar (11.0 Кб, 27 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 10.04.2009, 14:21   #6
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

Спасибо) интересная штука. Я через макрос прописал.

Dim sh As Integer
Dim k As Integer
k = Worksheets.count
For sh = 1 To k

Worksheets(sh).Activate
Cells.Select

(формулу1 - заменяем на формулу 2)
(формулу3 - заменяем на формулу 4)
и так далее

Next sh


End Sub
ruavia3 вне форума Ответить с цитированием
Старый 10.04.2009, 14:32   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Как Вам угодно. Но по-моему, во-первых, с формой проще, во вторых, Ваш макрос должен либо присутствовать в той книге, в которой требуется произвести замену, либо в него нужно дописать опцию выбора книги, что, собственно в предложенном примере и сделано.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одинаковые числа artemavd Общие вопросы Delphi 10 14.11.2008 20:36
Выполнение макроса во всех листах Bu$ter Microsoft Office Excel 18 14.11.2008 14:34
Одинаковые элементы kodov Общие вопросы Delphi 3 11.08.2008 14:03
image. печать большого изображения на нескольких листах OLEG'arh Общие вопросы Delphi 1 20.06.2008 13:06
Суммесли и диапазоны на листах _ДЭН_78 Microsoft Office Excel 1 18.09.2007 15:38