dude, спасибо! уже тоже нашел, что можно сделать формулой через нд()
Задача решена.
Задача решена.
25.06.2019 12:20:57
Попробовал варианты Андрей Лящук и Igor_61 - оба работают как надо (за исключением того, что происходит открытие в браузере по всем отфильтрованным строкам, а не только по выделенным из них). Вариант Igor_61 выглядит проще. Доработал его по совету RAN считыванием по названию столбца таблицы, а не по номеру. Итоговый вариант прикрепил. Насчет открытия в фоне наверно мне будет сложновато изучить WinAPI, да и не особо этот момент критичен.
Благодарю за помощь!
Изменено: |
|
|
24.06.2019 17:47:09
Добрый день!
Возникла такая задача: В таблице excel у меня содержатся данные по товарам, у каждого товара есть статус (например, new, ready). Для выбранных товаров мне нужно по значениям в определенных столбцах формировать ссылку для поиска в браузере. Я написал макрос VBA, чтобы с помощью функции Shell в нужном мне браузере открывалась ссылка, сформированная по значениям нужных столбцов из выделенной ячейки. Хотелось бы, чтобы можно было выделить сразу несколько строк и выполнить поиск сразу по всем (т.е. чтобы в браузере открылось несколько вкладок с поиском по каждому выделенному товару). Но проблема в том, что это нужно сделать только по нескольким товарам со статусом ready, а когда я включаю фильтр по статусу ready и выделяю несколько строк, то фактически при этом выделяются еще и промежуточные строки (например, статус ready находится в первой и третьей строке, если я выделяю при включенном фильтре эти строки, то автоматически выделяется еще и строка 2). Прикрепляю пример файла (там есть макрос OpenBrowser). Дополнительные вопросы: - для функции Shell как будто не срабатывает аргумент WindowStyle. Я в макросе прописал значение vbMinimizedNoFocus, т.е. хочу чтобы ссылка открылась "в фоне" чтобы файл Excel остался открытым. Но все равно открывается браузер и фокус переходит туда. - значения нужных мне столбцов для ссылки я получаю с помощью Cells(ActiveCell.Row, <Номер столбца>).Value. Но в таблицу в будущем могут быть добавлены новые столбцы и номер нужного столбца изменится. Можно ли считывать значения по названию столбца таблицы, а не по номеру (таблица "умная", т.е. отформатирована как таблица)? Заранее спасибо.
Изменено: |
|
|
15.06.2019 21:21:30
В общем, пока что буду просто делать много строк в таблице2, выводить значения по условию, что статус строки равен ready и фильтровать пустые строки. В моем примере так: |
|||||
|
15.06.2019 20:52:50
artyrH, УФ посмотрел - вижу, что вы убираете границы таблицы если там пустые значения. При этом сама таблица на листе "Лист 2" у вас имеет не 7 строк (заголовок + 6 строк со статусом ready), а 17. Я то хотел, чтобы размер таблицы2 динамически изменялся в зависимости от того, сколько строк получается в результате.
|
|||
|
15.06.2019 20:09:37
artyrH, в моем примере я неудачно взял поле Id. На самом деле его нет. Точнее говоря, я могу его сделать самостоятельно в таблице 1, нумеруя последовательно каждую строку. Но в таблице2 его быть не должно. Таблица2 предназначена для того, чтобы ее целиком взять и сохранить в файл формата CSV. Этот файл CSV в дальнейшем нужно загружать на Ebay. Ebay предоставляет возможность загружать лоты не через ручное редактирование каждого лота в браузере, а через загрузку множества лотов в файле CSV (Ebay File Transfer). Этот файл CSV имеет жесткий формат и Id там быть не должно. Соответственно, не вижу возможности выводить данные таблицы2 по айдишнику из таблицы1.
|
|
|
15.06.2019 19:38:25
Андрей Лящук, artyrH, большое спасибо!
Попробовал сделать через Power Query и отказался от этой затеи. Дело в том, что реальные таблицы намного больше и сложнее чем в примере. Таблица2 из примера должна получать данные не только из таблицы1, но еще и из других таблиц на других вкладках. При попытке прописать эту логику через Power Query при обновлении данных сильно зависает Excel. Поэтому сделаю просто формулами в таблице2, а лишние строки буду фильтровать. |
|
|
15.06.2019 17:17:59
Всем привет!
Подскажите, пожалуйста, по такой задаче: В одном из столбцов таблицы1 на листе1 ведется статус записи (текст, например, "new", "ready"). В таблице2 на листе2 по определенным формулам берутся значения из таблицы1 (например, сцепляются значения из нескольких столбцов таблицы1). Требуется, чтобы таблица2 содержала только строки, статус которых из таблицы1 равен "ready". Обе таблицы отформатированы как таблицы ("Форматировать как таблицу"). Я мог бы увеличить размер таблицы2 до большого числа строк (заведомого большего чем ожидаемое число записей) и в каждом столбце таблицы2 сделать формулу, чтобы значения выводились только при условии, что статус записи из таблицы1 равен "ready". Но в этом случае в таблице2 получается много лишних записей вида #ЗНАЧ! и приходится фильтровать таблицу. Да и выглядит это кривовато. Подозреваю, что есть простое и правильное решение. Прикрепляю пример. Заранее благодарен.
Изменено: |
|
|