|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.04.2009, 09:55 | #1 |
Форумчанин
Регистрация: 13.03.2009
Сообщений: 253
|
Одинаковые действия на нескольких листах
Мне необходимо заменить одинаковые формулы на разных листах. Как это сделать без обозначения листа и прописывания действий под каждым?
|
10.04.2009, 10:17 | #2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Можно написать макрос, который, например, будет выводить на экран запрос с двумя полями для ввода. 1-е - формула, которую меняем, 2-е - формула, которой заменяем первую. Жмем кнопку и во всех листах (или, если требуется, в указанных) происходит замена. Устроит?
Чем шире угол зрения, тем он тупее.
|
10.04.2009, 10:22 | #3 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Поиск и замена.
Лучше день потерять — потом за пять минут долететь!©
|
10.04.2009, 12:07 | #4 |
Форумчанин
Регистрация: 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? |
10.04.2009, 14:08 | #5 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Посмотрите вложение. Откройте Файл. Запустите макрос "Замена_Формул".
Будет выведена форма для заполнения. В ComboBox нужно выбрать файл, в котором требуется заменить формулы (или просто значения). Список файлов будет сформирован из всех открытых книг. Затем в левый TextBox записываем формулу, которую нужно заменить и жмем "ОК". В правый TextBox - то, чем требуется заменить и тоже жмем "ОК". Введенные значения будут заноситься в соответствующие ListBox-ы. После того, как ввод завершен - нажмите "Произвести замену". Если не выбрана книга, или ListBox-ы пусты, или количество строк, введенных в правую и левую часть, разное, то операция замены произведена не будет (об этом будет выведено сообщение).
Чем шире угол зрения, тем он тупее.
|
10.04.2009, 14:21 | #6 |
Форумчанин
Регистрация: 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 |
10.04.2009, 14:32 | #7 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Как Вам угодно. Но по-моему, во-первых, с формой проще, во вторых, Ваш макрос должен либо присутствовать в той книге, в которой требуется произвести замену, либо в него нужно дописать опцию выбора книги, что, собственно в предложенном примере и сделано.
Чем шире угол зрения, тем он тупее.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Одинаковые числа | 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 |