как взять только несколько столбцов после фильтрации vba? - PullRequest
0 голосов
/ 07 мая 2011

Hei

У меня есть 2 листа в моем Excel, и я хотел бы взять с 1 листа, где у меня есть информация о клиенте, до 2 листов, где я хотел бы отфильтровать данные.

Итак, я сделал этот макрос для фильтрации данных на листе 2.

`Sub choice()
'
' choice Macro
'
Dim parameter As Range, data As Range, result As Range
Set parameter = Range("param").CurrentRegion
Set data = Range("table").CurrentRegion
Set result = Range("result").CurrentRegion.Offset(1, 0)
result.ClearContents
Set result = Range("result").CurrentRegion
    data.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=parameter _
        , CopyToRange:=result, Unique:=False

End Sub`

data = "table" - таблица клиентов на 1 листе

Однако при копировании вставляются все данные из информации о клиентах.

Можно ли как-нибудь добавить код в этот макрос, чтобы взять оттуда только Имя и Фамилию?

Спасибо!

1 Ответ

0 голосов
/ 10 мая 2011

Вероятно, это связано с тем, как вы определили диапазоны для данных, критериев и назначения.Приведенный ниже код должен помочь показать явные диапазоны.

Предположим, у вас есть данные для фильтрации в столбцах Листа A:F, критерии для фильтрации находятся в диапазоне I1:N2 и отфильтрованные данные для копирования в столбцы P:U

В первой строке кода столбцы E:F помещаются только в столбцы T:U на основе критериев I1:N2 Во второй строке все отфильтрованные данные из A:F помещаются в P:U на основете же критерии.

Кроме того, убедитесь, что заголовки полей / столбцов точно соответствуют данным / критериям / получателю

Sub test()

     'Returns E:F in destination range T:U based on filter criteria
     Sheet1.Columns("A:F").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
         Sheet1.Range("I1:N2"), _
         CopyToRange:=Sheet1.Range("T1:U1"), Unique:=True

     'Returns full range A:F in destination range P:U based on filter criteria
     Sheet1.Columns("A:F").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
         Sheet1.Range("I1:N2"), _
         CopyToRange:=Sheet1.Range("P1:U1"), Unique:=True
 End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...