Добрый день, дамы и господа Странно, но мало кто задавался вопросом фильтрации... может быть потому, что это полуавтоматизация.
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- для данного примера примера) находится в буфере обмена, т.е. я со стороннего ресурса скопировал данные, захожу на лист с фильтром и вызываю макрос.
Добрый день, дамы и господа Странно, но мало кто задавался вопросом фильтрации... может быть потому, что это полуавтоматизация.
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
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]Если не получается - добавьте в проект Юзерформу (можно удалить затем), нужная библа останется.Апострофф
Если в буфере именно текст, то можно так попробовать [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]
Если в буфере именно текст, то можно так попробовать [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
Пробовал на файле из примера копирую имеющийся код- крутит бесконечно. Пробовал именно текст "восемь" т.е. отсутствующий в столбце для фильтрации через приостановку процесса в диспетчере завершаю.
Ой, не то... секунду, исправлюсь
Фильтр срабатывает и все сворачивает, даже если я вставляю в H8 "Номер восемь" и в буфер обмена помещаю "Номер восемь". И весь столбец в формате ячеек перевожу в текст, и искомый текст в формате текст.
Пробовал на файле из примера копирую имеющийся код- крутит бесконечно. Пробовал именно текст "восемь" т.е. отсутствующий в столбце для фильтрации через приостановку процесса в диспетчере завершаю.
Ой, не то... секунду, исправлюсь
Фильтр срабатывает и все сворачивает, даже если я вставляю в H8 "Номер восемь" и в буфер обмена помещаю "Номер восемь". И весь столбец в формате ячеек перевожу в текст, и искомый текст в формате текст.
Доброе утро, дамы и господа В Питере наледь и в пору коньки... Сегодня попробовал код для поиска по наименованиям, а они разнятся, окончания меняются... В общем посмотрел что код фильтрует по критерию "равно" и порывшись в сети добавил текст меж звёзд. Тест в первом столбце на 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] Мож кому пригодится.
Хорошего дня.
Доброе утро, дамы и господа В Питере наледь и в пору коньки... Сегодня попробовал код для поиска по наименованиям, а они разнятся, окончания меняются... В общем посмотрел что код фильтрует по критерию "равно" и порывшись в сети добавил текст меж звёзд. Тест в первом столбце на 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 & "*"
ActiveSheet.Range("$A$6:$L$11733").AutoFilter Field:=1, Criteria1:="*" & v & "*"
Подскажите, у меня этот фильтр работает, только если скопированно не точное значение, а часть его. То есть мне нужно найти человека Иванова Ивана, если я копирую Иванов Ива, всё отлично получаеться, НО если я копирую Иванов Иван, тогда выходит НИЧЕГО.
ActiveSheet.Range("$A$6:$L$11733").AutoFilter Field:=1, Criteria1:="*" & v & "*"
Подскажите, у меня этот фильтр работает, только если скопированно не точное значение, а часть его. То есть мне нужно найти человека Иванова Ивана, если я копирую Иванов Ива, всё отлично получаеться, НО если я копирую Иванов Иван, тогда выходит НИЧЕГО.kosru