|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.04.2019, 10:45 | #1 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 98
|
Поиск, смещение и замена данных
Добрый день!
Пытаюсь понять, куда встроить функцию OffSet. Хотел получить следующий результат: на листе "критерии" есть две колонки - с поисковым образом и со значениями, которые надо заменить (перенести) на всех листах книги (исключая лист с критериями). Проблема в том, что это не просто замена одного значения на другое, а надо сначала надо найти ячейку, содержащую поисковый образ, потом сместиться на несколько ячеек вправо и произвести перенос в ячейку значения с листа "критерии". Пока не преуспел в данной задаче. Подскажите, пожалуйста, как будет правильно. Спасибо. |
04.04.2019, 11:48 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
я не мастер, но попробуйте такой код:
Код:
|
04.04.2019, 12:58 | #3 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 98
|
Что-то Вы явно поскромничали... работает и очень хорошо работает.
Даже на 80% разобрался в коде. Благодарю! |
04.04.2019, 13:57 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
да работает то оно работает.
Но я уверен, что профи мог бы весь этот код забабахать в пару команд, упразднив пару циклов. да, побочный эффект от моей малограмотности - это то, что код легко читается и понимается! а что скрылось в эти непонятые 20% ? |
04.04.2019, 15:47 | #5 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Обыватель, откройте для себя функцию ВПР: в ячейке С2 любого листа введите
Код:
То же самое можно сделать макросом.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
04.04.2019, 16:58 | #6 | |
Пользователь
Регистрация: 21.01.2008
Сообщений: 98
|
Цитата:
Проблема была в том, как на 150 листах занести эту формулу в строго определенные ячейки. С уважением |
|
04.04.2019, 17:02 | #7 | |
Пользователь
Регистрация: 21.01.2008
Сообщений: 98
|
Цитата:
Вот тут я подвис. Просто для меня сложноватый подход. "Set Loc = .Cells.Find(What:=CriteriaCell.Valu e) If Not Loc Is Nothing Then sFirstAddress = Loc.Address Do Loc.Offset(0, 2).Value = CriteriaCell.Offset(0, 1).Value" |
|
04.04.2019, 17:46 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
кстати, у меня, когда писал код с циклами поиска и замены, была мысль вместо Value просто вставлять формулу с ВПР()
на мой взгляд - это и есть правильное решение: 1) это можно делать там, где нужно (не привязываясь к смещению) 2) это может делать сам пользователь, менять макрос для этого не надо 3) и, самое главное, получается "живая" связь - если поменять значение на странице "критерии", то автоматически везде поменяется нужное значение в ячейках, где вставлена формула с ВПР() |
04.04.2019, 17:54 | #9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Код:
|
04.04.2019, 18:10 | #10 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Если листы имеют одинаковую структуру, как в примере, то так
Код:
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск и замена | II4eJI | Microsoft Office Excel | 2 | 09.01.2015 01:27 |
Относительное смещение данных | Debris | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 17 | 07.01.2015 21:13 |
поиск и замена | evdss | Microsoft Office Excel | 7 | 18.03.2011 02:05 |
поиск и замена | gabbachild | Microsoft Office Excel | 4 | 26.01.2010 17:16 |
Замена кода программы с Delhi5 на Delhi7 либо замена базы данных с Acessa на MySQL | DorianLeroy | Фриланс | 8 | 18.02.2009 18:52 |