|
|
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
Помогите, пожалуйста, автоматизировать следующие мои действия в Эксель (макросом): 1. Копирую ячейку 2. при помощи Правка- найти ищу все ячейки удовлетворяющие условию 3. Выделяю все эти ячейки в окне поиска 4. Правой кнопкой мыши по выделению - вставить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 17:12:28 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
Дай условие и то, что ты вставляешь...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 17:19:44 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
@NikДай условие и то, что ты вставляешь...... Несколько примеров привел. Они, по большому счету, все однотипные. Пробовал макрорекордером записать поиск выделение ячеек - не получилось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 06:33:22 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
Всё, что вы описали можно сделать и без поиска, обычным распространением формулы вправо(метод FillRight ), если, конечно, заранее известен диапазон распространения. Если диапазон распространения не известен, то скажите как его можно найти, может проще определить границы диапазона, чем искать подстроку в формулах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 10:04:24 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
@NikВсё, что вы описали можно сделать и без поиска, обычным распространением формулы вправо(метод FillRight ), если, конечно, заранее известен диапазон распространения. Если диапазон распространения не известен, то скажите как его можно найти, может проще определить границы диапазона, чем искать подстроку в формулах. Чё то плохо я объясняю... Диапазон распространения я нахожу именно поиском... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 12:37:17 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
Хорошо, тогда приведите реальный пример, когда нужно это делать именно поиском... т.е. нельзя просто протянуть формулу вправо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 12:45:44 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
@NikХорошо, тогда приведите реальный пример, когда нужно это делать именно поиском... т.е. нельзя просто протянуть формулу вправо... на листе "Проба" нужно поменять формулы с "=Лист1!..." на "=Лист2!..." Изменить сломанные ссылки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 13:04:43 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
В данном случае поможет обыная замена. Ищем "=Лист1!", заменить на "=Лист2!", область поиска - формулы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 13:31:49 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
@NikВ данном случае поможет обыная замена. Ищем "=Лист1!", заменить на "=Лист2!", область поиска - формулы ага. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 13:35:25 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
@NikВ данном случае поможет обыная замена. Ищем "=Лист1!", заменить на "=Лист2!", область поиска - формулы Только гораздо быстрее вставить ячеки целиком и обновить, а не пробегаться по всей формуле (около 900 знаков) в каждой ячейки. Как программно выделить нужный мне диапазон по условию. Наподобие того, как делает правка найти и поторм выделить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 13:38:28 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
А почему нельзя воспользоваться кнёпочкой "Заменить все" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 13:44:39 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
Лист1 на Лист2 поменять в одной ячейки не сложно. Допустим, на изменение формулы и обновления связи мой Эксель тратит 0,5 сек. (субъективно), на изменение 12000 формул потребуется 1,5 часа. + время на просмотр других ячеек. Вставка в выделенный диапазон скопированной формулы составляет не более 1,5 мин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 13:47:05 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
@NikА почему нельзя воспользоваться кнёпочкой "Заменить все" ? Потому, что Заменить все - это цикл. У меня очень долгий. а вставка ячеки в диапазон на порядок быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 13:52:19 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
я не знаю о каких 1,5 часах вы говорите..? У меня замена всех ваших формул была произведена где-то за 1-2 секунды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 13:57:54 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
@Nikя не знаю о каких 1,5 часах вы говорите..? У меня замена всех ваших формул была произведена где-то за 1-2 секунды. Пример формулы: =Сервер\папка\файл1!лист1А1+Сервер\папка\файл2!лист1А1+Сервер\папка\файл3!лист1А1+Сервер\папка\файл4!лист1А1+Сервер\папка\файл5!лист1А1+Сервер\папка\файл6!лист1А1+Сервер\папка\файл7!лист1А1+Сервер\папка\файл8!лист1А1+Сервер\папка\файл9!лист1А1+Сервер\папка\файл10!лист1А1+Сервер\папка\файл11!лист1А1+Сервер\папка\файл12!лист1А1+Сервер\папка\файл13!лист1А1+Сервер\папка\файл14!лист1А1+Сервер\папка\файл15!лист1А1+Сервер\папка\файл16!лист1А1+Сервер\папка\файл17!лист1А1+Сервер\папка\файл18!лист1А1+Сервер\папка\файл20!лист1А1. По другому прошу не предлагать Скоро, может быть, откажемся от такого, перейдя на СУБД, ну а пока так. Вопрос основной: Как программно выделить нужный мне диапазон по условию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 14:14:23 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
1. Что значит выделить ? Я так понимаю это выполнить Range().Select, либо сослаться на конкретный Range() на одном из листов в одном из файлов. 2. Задайте конкретное условие для данного примера, по которому искать этот Range(). Совершенно непонятно что вам надо и для какой цели. От конечной цели может зависеть вариант её реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 14:42:42 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
@Nik1. Что значит выделить ? Я так понимаю это выполнить Range().Select, либо сослаться на конкретный Range() на одном из листов в одном из файлов. 2. Задайте конкретное условие для данного примера, по которому искать этот Range(). Совершенно непонятно что вам надо и для какой цели. От конечной цели может зависеть вариант её реализации. Да. Пусть будет Range().Select, где Range() - диапазон ячеек, которые содержат, например, выражение "='\\" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 14:47:14 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
Я совершенно перестал понимать условие задачи... Либо вы подробно всё рассказываете ещё раз, либо я пасс :-) Какое ещё "='\\" ?? Где его искать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 14:58:12 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
@NikЯ совершенно перестал понимать условие задачи... Либо вы подробно всё рассказываете ещё раз, либо я пасс :-) Какое ещё "='\\" ?? Где его искать ? Ну только остается попросить прощения за то, что отнял у вас время. Оченнь плохо объясняю. Простите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2008, 06:54:52 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
Вроде нашел то, что мне нада... :-)) http://www.sql.ru/forum/actualthread.aspx?tid=243878&hl=%e2%fb%e4%e5%eb%e8%f2%fc+%ff%f7%e5%e9%ea%e8 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2008, 09:40:12 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
Все равно ничего не понимаю. Если целью всего этого будет замена, то почему сразу нельзя воспользоваться функцией "Заменить все". И потом, я так понял, что искать надо именно в формулах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2008, 18:19:31 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
@NikВсе равно ничего не понимаю. Если целью всего этого будет замена, то почему сразу нельзя воспользоваться функцией "Заменить все". Не, ну чё, я совсем что ли тупой? Или толком объяснить не могу? "Заменить все" как действует? Эксель начиная с ячейки A1 по строкам заходит в каждую и просматиривает посимвольно в ее содержимом (до 1024 знака) заданные сочетания. При находжении соответствия меняет найденные символы на необходимые. Потом ему ну очень нужно вычислить формулы и он старательно обращается к закрытым файлам. Даже при отключенном автоматическом пересчете формул. Ему же нужно проверить что новый путь действительно существует. Я не прав? Если это все происходит в одном файле или когда открыты все связанные файлы, когда все данные находятся в оперативной памяти компа, так и не вопрос, делается все быстро (1-2 сек). Если мы используем найти и выделить, то не происходит долгой, как в первом случае, процедуры обращения к закрытым файлам после каждой измененной ячеки (а может и после каждого изменения внутри одной ячейки). Мы просто ищем, а не заменяем. Находим и выделяем нужные ячейки за 1-2 сек. Потом вставляем и эксель начинает обновлять за несколько секунд все свои ссылки как при открытии файла (наверняка при этом используется другая внутренная экселевская метода обновления) @Nik И потом, я так понял, что искать надо именно в формулах.Что касается поиска в формулах, то в вышеприведенном коде можно изменить этот аргумент Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2008, 09:46:32 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
@Nik, ты со мной не согласен? или я, как обычно, не корректно пищу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2008, 14:21:18 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
Теперь всё ясно. Наверное ты прав. Тогда следи за этим топиком, тут будет ещё более интересное решение, а возможно и не одно ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 14:10:40 |
|
||
|
Вставить ячейки по условию
|
|||
|---|---|---|---|
|
#18+
@Nikследи за этим топиком, тут будет ещё более интересное решение, а возможно и не одно ;-) Да, я подписан на него ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2008, 14:18:57 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=35068455&tid=2181586]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
556ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
79ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 934ms |

| 0 / 0 |
