2016-03-30 20 views
0

bazı isimler ile kolon A olan değişkenler üzerinden adı bir hücre (not parantez önce 2 boşluk) içinde resambles her dize dizi oluşturma: diğer sac I OOtomatik filtreleme -,

Doe, John (New York) 
Smith, Will (Philadelphia) 
Banks, Carlton (LA) 

Aynı formatta birden fazla ismin bulunduğu A sütununa sahip olmalısınız. Excel'de otomatik filtrede kullanmak için bir dizi oluşturmak istiyorum.

Tüm isimlerden geçmek için bir döngü oluşturmayı bildiğim için, diziyi uygun bir biçimde oluşturmama yardımcı olabilir misiniz?

Aşağıdakileri denedim ama işe yaramadı, filtre tüm adları gizler. Ben değişken kryterium Debug.Print zaman ben tam dize ihtiyacım olsun:

If k > 0 Then 
    kryterium = kryterium & ", " & sNameStat 
Else 
    kryterium = sNameStat 
End If 

ary = Split(kryterium, ", ") 

ActiveSheet.Range("$A$1:$A$49").AutoFilter Field:=1, Criteria1:=Array(ary), Operator:=xlFilterValues 

cevap

-1

VBA kullanmak zorunda mıyım? Ayıklanan adlara bir çift ek sütun eklerim ve bu sütunlara bir veri filtresi uygularım.

Soyadı sütun: =LEFT(A1,FIND(",",A1)-1)

Önad sütun: Çok VBA seviniriz =MID(A1,LEN(B1)+3,FIND("(",A1)-3-LEN(B1))

+0

. İşte Bunu kısmen olurdu çalışmak kurulan budur: "" " ' Eğer k> 0 Ardından kryterium = kryterium & " "& """" & sNameStat &" Else kryterium = "" "" & sNameStat & "" "" sonu Debug.Print kryterium Eğer k = k + 1 li = Bölünmüş (kryterium, Bitiş "Eğer" " """) ' Ama bu sadece beni bir ad verir. Ve ben Debug.Print nasıl bilmiyorum aslında dizinin içinde ne olduğunu ... – DonAndress

+0

Diziyi bir diziye bölmek için bölme kullandınız ama ölçütleriniz "Ölçüt1: = Dizi (ary)". "Array" ın kafa karıştırıcı şeyler olabileceğini düşünüyorum, "Array" bir dizi dizi olduğunu söylüyor. Bence sadece (ary) çalışmalı. – AndyW

+0

Aslında onlarca denemeden sonra bir çalışma kodu buldum: 'k> 0 ise kryterium = kryterium &" "" "&", | " & "" "" & SedziaNameStat Else kryterium = sedziaNameStat sonu ise k = k + 1 li = Split (kryterium & "" "" & "|" & "" "", """, Üste | Geri Bildirim Ver Daha fazla bilgi "" " ActiveSheet.Range (" $ B $ 1: $ B $ "& lastSedziaStat) .AutoFilter Alanı: = 1, Kriterler1: = Array (ary), Operatör: = xlFilterValues' Sonuç - Array (ary) iyi çalışıyor. Ancak çaba için teşekkürler. – DonAndress