Excel adatok szűrése külső adatok alapján
2022-03-23T08:53:51+01:00
2022-03-23T11:11:15+01:00
2022-08-12T08:10:30+02:00
scafi
Sziasztok!

Olyan problémával küzdök, hogy a personal.xlsb fájlban egy előre megadott név lista alapján kellene 1-1 új Excel táblázatot szűrnöm.
Ha változóval csinálom nem működik, viszont ha a feltöltött változó adatait beszúrom a változó helyére, akkor jó lesz.

Sub Makró2() Dim vbDblQuote As String vbDblQuote = Chr(34) Dim név As Single Dim létszám, új As String Windows("PERSONAL.XLSB").Visible = True Windows("PERSONAL.XLSB").Activate létszám = vbDblQuote & Sheets("CNC_létszám").Range("A1") & vbDblQuote For név = 2 To 100 If Sheets("CNC_létszám").Range("A" & név) = "" Then GoTo vége új = vbDblQuote & Sheets("CNC_létszám").Range("A" & név) & vbDblQuote létszám = létszám & ", " & új Next név vége: Windows("PERSONAL.XLSB").Visible = False ActiveSheet.Range("$A$1:$A$10").AutoFilter Field:=1, Criteria1:=Array(létszám), Operator:=xlFilterValues End Sub
kKöszi.
Üdv.:
Fecó
Mutasd a teljes hozzászólást!
Szia!
Attól, hogy Array(létszám)-ot adsz meg paraméternek, az még nem lesz tömb sajnos, akkor sem ha idézőjelek között levő értékeket adsz meg listaként.
Magát a változót kell tömbként definiálnod illetve tömbbé változtatnod. A létszám változód összerakásánál nincs szükség az idézőjelekre, elég vesszővel elválasztani az értékeket, hiszen szöveges változónak definiáltad.
Amikor megvan a teljes listád, akkor kell tömböt csinálni belőle a Split függvénnyel, egy új változóba, amit egyébként Variant típusnak kell definiálnod. Legyen ez most paramlista. Ekkor az utasítás(ok):

dim paramlista ' a makró elején, így variant lesz a típusa paramlista=Split(létszám,",")
Ezután a szűrés:

ActiveSheet.Range("$A$1:$A$10").AutoFilter Field:=1, Criteria1:=paramlista, Operator:=xlFilterValues
De a létszám változódat is definálhatod variant típusnak és akkor nem kell új változó a tömbbé alakításhoz!
Még egy apróság: Nem javaslom ékezetes változónevek használatát, mivel ez lehetetlenné teszi a hordozhatóságot, más nyelvi környezetben nem fog működni, de az is előfordulhat, hogy nem fogja felismerni magyar környezetben sem más karakterkészletek esetén.
Üdv.
Mutasd a teljes hozzászólást!

  • Egy gépen lesz használva csak, ami magyar, de amúgy igazad van.
    A szűrés parancsot makrórögzítővel csináltam, az, hogy tömböt kér, az is onnan van. A változót pedig ahogy feltöltöm adatokkal, ugye kiírja "alul", hogy mi a tartalma. Ha azt az értéket beszúrom a változó nevének a helyére, akkor működik.
    Kicsit később kipróbálom a javaslatodat, addig is köszi.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd