Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Отфильтровать столбец по данным из буфера обмена - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Отфильтровать столбец по данным из буфера обмена (Макросы/Sub)
Отфильтровать столбец по данным из буфера обмена
Yar4i Дата: Понедельник, 28.10.2019, 13:07 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 137
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Добрый день, дамы и господа :D
Странно, но мало кто задавался вопросом фильтрации... может быть потому, что это полуавтоматизация.

H6 ячейка с флажком фильтра.
Пытаюсь вводить Ctrl+V значения "03-30017235" и прочие, чтобы отсортировалось...

[vba]
Код
Sub ФильтрКод()
    ActiveSheet.Range("$A$6:$M$11624").AutoFilter Field:=8, Criteria1:= _
      "03-30017235" ' нужен не текст, а Ctrl+V из буфера обмена
End Sub
[/vba]

Самое главное не сказал - значение для поиска (03-30017235- для данного примера примера) находится в буфере обмена, т.е. я со стороннего ресурса скопировал данные, захожу на лист с фильтром и вызываю макрос.
К сообщению приложен файл: 2051695.xlsx (9.6 Kb)


Сообщение отредактировал Yar4i - Понедельник, 28.10.2019, 15:40
 
Ответить
СообщениеДобрый день, дамы и господа :D
Странно, но мало кто задавался вопросом фильтрации... может быть потому, что это полуавтоматизация.

H6 ячейка с флажком фильтра.
Пытаюсь вводить Ctrl+V значения "03-30017235" и прочие, чтобы отсортировалось...

[vba]
Код
Sub ФильтрКод()
    ActiveSheet.Range("$A$6:$M$11624").AutoFilter Field:=8, Criteria1:= _
      "03-30017235" ' нужен не текст, а Ctrl+V из буфера обмена
End Sub
[/vba]

Самое главное не сказал - значение для поиска (03-30017235- для данного примера примера) находится в буфере обмена, т.е. я со стороннего ресурса скопировал данные, захожу на лист с фильтром и вызываю макрос.

Автор - Yar4i
Дата добавления - 28.10.2019 в 13:07
Апострофф Дата: Понедельник, 28.10.2019, 15:52 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация: 123 ±
Замечаний: 0% ±

Excel 1997
Пробуйте -[vba]
Код
Sub Макрос1()
Dim objClpb As New DataObject
objClpb.GetFromClipboard
ActiveSheet.Range("$A$6:$L$11").AutoFilter Field:=8, Criteria1:=objClpb.GetText
End Sub
[/vba]Если не получается - добавьте в проект Юзерформу (можно удалить затем), нужная библа останется.
 
Ответить
СообщениеПробуйте -[vba]
Код
Sub Макрос1()
Dim objClpb As New DataObject
objClpb.GetFromClipboard
ActiveSheet.Range("$A$6:$L$11").AutoFilter Field:=8, Criteria1:=objClpb.GetText
End Sub
[/vba]Если не получается - добавьте в проект Юзерформу (можно удалить затем), нужная библа останется.

Автор - Апострофф
Дата добавления - 28.10.2019 в 15:52
Yar4i Дата: Понедельник, 28.10.2019, 16:20 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 137
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Цитата Апострофф, 28.10.2019 в 15:52, в сообщении № 2 ()
добавьте в проект Юзерформ

Дебаг выскочил, добавляю юзерформу

insert- userform а дальше непонятно

____
Теперь ничего не находит... В ручную норм, а макрос скрывает все фильтром (хотя значение есть)


Сообщение отредактировал Yar4i - Понедельник, 28.10.2019, 16:23
 
Ответить
Сообщение
Цитата Апострофф, 28.10.2019 в 15:52, в сообщении № 2 ()
добавьте в проект Юзерформ

Дебаг выскочил, добавляю юзерформу

insert- userform а дальше непонятно

____
Теперь ничего не находит... В ручную норм, а макрос скрывает все фильтром (хотя значение есть)

Автор - Yar4i
Дата добавления - 28.10.2019 в 16:20
Апострофф Дата: Понедельник, 28.10.2019, 17:07 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация: 123 ±
Замечаний: 0% ±

Excel 1997
Если
Дебаг выскочил
-> End (сброс проекта). Добавить (потом удалить) форму. Добавится библиотека MSForms.
Потом начинаем пробы сначала.
 
Ответить
СообщениеЕсли
Дебаг выскочил
-> End (сброс проекта). Добавить (потом удалить) форму. Добавится библиотека MSForms.
Потом начинаем пробы сначала.

Автор - Апострофф
Дата добавления - 28.10.2019 в 17:07
Pelena Дата: Понедельник, 28.10.2019, 19:27 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19177
Репутация: 4417 ±
Замечаний: ±

Excel 365 & Mac Excel
Если в буфере именно текст, то можно так попробовать
[vba]
Код
Sub Макрос1()
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .GetFromClipboard
        v = .GetText
    End With
    ActiveSheet.Range("$A$6:$L$11").AutoFilter Field:=8, Criteria1:=v
End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЕсли в буфере именно текст, то можно так попробовать
[vba]
Код
Sub Макрос1()
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .GetFromClipboard
        v = .GetText
    End With
    ActiveSheet.Range("$A$6:$L$11").AutoFilter Field:=8, Criteria1:=v
End Sub
[/vba]

Автор - Pelena
Дата добавления - 28.10.2019 в 19:27
Yar4i Дата: Среда, 30.10.2019, 16:27 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 137
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
текст

Пробовал на файле из примера копирую имеющийся код- крутит бесконечно.
Пробовал именно текст "восемь" т.е. отсутствующий в столбце для фильтрации
через приостановку процесса в диспетчере завершаю.


Ой, не то... секунду, исправлюсь

Фильтр срабатывает и все сворачивает, даже если я вставляю в H8 "Номер восемь" и в буфер обмена помещаю "Номер восемь".
И весь столбец в формате ячеек перевожу в текст, и искомый текст в формате текст.

Может быть буфер обмена переполнен..


Сообщение отредактировал Yar4i - Среда, 30.10.2019, 16:49
 
Ответить
Сообщение
текст

Пробовал на файле из примера копирую имеющийся код- крутит бесконечно.
Пробовал именно текст "восемь" т.е. отсутствующий в столбце для фильтрации
через приостановку процесса в диспетчере завершаю.


Ой, не то... секунду, исправлюсь

Фильтр срабатывает и все сворачивает, даже если я вставляю в H8 "Номер восемь" и в буфер обмена помещаю "Номер восемь".
И весь столбец в формате ячеек перевожу в текст, и искомый текст в формате текст.

Может быть буфер обмена переполнен..

Автор - Yar4i
Дата добавления - 30.10.2019 в 16:27
Pelena Дата: Среда, 30.10.2019, 17:47 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 19177
Репутация: 4417 ±
Замечаний: ±

Excel 365 & Mac Excel
Под словами "именно текст" я подразумеваю, что вы копируете не ячейку целиком, а текст из строки формул.


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПод словами "именно текст" я подразумеваю, что вы копируете не ячейку целиком, а текст из строки формул.

Автор - Pelena
Дата добавления - 30.10.2019 в 17:47
Yar4i Дата: Четверг, 31.10.2019, 08:07 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 137
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
не ячейку целиком

А! Спасибо.
Чудесно все выходит. Я уж фомулу верхнюю начал гуглить - в сети даже нашел вариант недостающей скобкой, ... А оно все проще.
 
Ответить
Сообщение
не ячейку целиком

А! Спасибо.
Чудесно все выходит. Я уж фомулу верхнюю начал гуглить - в сети даже нашел вариант недостающей скобкой, ... А оно все проще.

Автор - Yar4i
Дата добавления - 31.10.2019 в 08:07
RAN Дата: Четверг, 31.10.2019, 11:55 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Вроде и снег выпал, а лыжи у меня все равно не едут.
Зачем эти извращения?
[vba]
Код
Sub Макрос1()
    ActiveSheet.Range("$A$6:$L$11").AutoFilter Field:=8, _
                    Criteria1:=InputBox("", "")
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВроде и снег выпал, а лыжи у меня все равно не едут.
Зачем эти извращения?
[vba]
Код
Sub Макрос1()
    ActiveSheet.Range("$A$6:$L$11").AutoFilter Field:=8, _
                    Criteria1:=InputBox("", "")
End Sub
[/vba]

Автор - RAN
Дата добавления - 31.10.2019 в 11:55
Yar4i Дата: Среда, 27.11.2019, 10:21 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 137
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Доброе утро, дамы и господа :D
В Питере наледь и в пору коньки...
Сегодня попробовал код для поиска по наименованиям, а они разнятся, окончания меняются... В общем посмотрел что код фильтрует по критерию "равно" и порывшись в сети добавил текст меж звёзд. Тест в первом столбце на 11733 строк
[vba]
Код
''Pelena
With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .GetFromClipboard
        v = .GetText
    End With
ActiveSheet.Range("$A$6:$L$11733").AutoFilter Field:=1, Criteria1:="*" & v & "*"
[/vba]
Мож кому пригодится.

Хорошего дня.
 
Ответить
СообщениеДоброе утро, дамы и господа :D
В Питере наледь и в пору коньки...
Сегодня попробовал код для поиска по наименованиям, а они разнятся, окончания меняются... В общем посмотрел что код фильтрует по критерию "равно" и порывшись в сети добавил текст меж звёзд. Тест в первом столбце на 11733 строк
[vba]
Код
''Pelena
With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .GetFromClipboard
        v = .GetText
    End With
ActiveSheet.Range("$A$6:$L$11733").AutoFilter Field:=1, Criteria1:="*" & v & "*"
[/vba]
Мож кому пригодится.

Хорошего дня.

Автор - Yar4i
Дата добавления - 27.11.2019 в 10:21
kosru Дата: Пятница, 07.01.2022, 19:14 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

[
ActiveSheet.Range("$A$6:$L$11733").AutoFilter Field:=1, Criteria1:="*" & v & "*"


Подскажите, у меня этот фильтр работает, только если скопированно не точное значение, а часть его.
То есть мне нужно найти человека Иванова Ивана, если я копирую Иванов Ива, всё отлично получаеться, НО если я копирую Иванов Иван, тогда выходит НИЧЕГО.
 
Ответить
Сообщение[
ActiveSheet.Range("$A$6:$L$11733").AutoFilter Field:=1, Criteria1:="*" & v & "*"


Подскажите, у меня этот фильтр работает, только если скопированно не точное значение, а часть его.
То есть мне нужно найти человека Иванова Ивана, если я копирую Иванов Ива, всё отлично получаеться, НО если я копирую Иванов Иван, тогда выходит НИЧЕГО.

Автор - kosru
Дата добавления - 07.01.2022 в 19:14
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Отфильтровать столбец по данным из буфера обмена (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!