Pystyykö excelin taulukkoon hakemaan jostakin tietystä kansiosta kaikkien niiden tiedostojen nimet jotka alkavat jollakin tietyllä merkkijonolla?
Jos siis kansiossa on tiedosto joka ei ala ko. merkkijonolla niin sitä ei haeta?
Jos siis kansiossa on tiedosto joka ei ala ko. merkkijonolla niin sitä ei haeta?
Vastaukset 6
Vanhimmat
Pystyy ilman muuta. Sämppeli koodia ei nyt just oo.
Sellainen koodi minulla jo onkin joka hakee kansion kaikki tiedostot lomakkeen kenttään (tältä palstalta peräisin muuten, hiukan muokattuna). Olen vain yrittänyt löyttää keinoa millä kaikki tiedostot eivät tulisi mukaan:
Dim Lahde As String, fso As Scripting.FileSystemObject
Set fso = New Scripting.FileSystemObject
Set Kansio = fso.GetFolder(Lahde)
For Each Tiedosto In Kansio.Files
Lstbox1.AddItem Tiedosto.Name
Label3 = "Tiedostoja " & Lstbox1.ListCount & " kpl:"
Next
Set Tiedosto = Nothing
Set Kansio = Nothing
Set fso = Nothing
Lstbox1.Selected(0) = True
Label3 = "Kansion tiedostot " & Lstbox1.ListCount & " kpl:"
if left(Tiedosto.Name,1)'a' then Lstbox1.AddItem Tiedosto.Name
Elikkä tarkemin sanottuna FSO:lla ei ole valmista filtteriä. (sitä varmaan kysyit aluks)
Jos halua suodattaa tiedostoja nimen perusteella niin se pitää koodata. Ei vaikeeta, jos osaat noita olioitakin tehdä.
Voit myös käyttää MS-dossia hyväksi. Siellähän on tuo "*"-haku valmiina.
Tässä tapauksessa vaikkapa kutsua shell komennolla battia"dir a* /b", niin tuloksen saa tiedostoon suoraan. Valittettavasti taas suodatus ei ehkä miellytä, sillä hakemistoja ei saa pois suoraan. Ei tarvi kuitenkaan niin monimutkaisia algoritmejä koodata itse.
tsemppiä! Uskon että löydät parhaan ratkaisun.
Olipa helppo (ja toimiva) ratkaisu. Kiitos
Kiitos vastauksesta, sain toimivan ratkaisun edellisen vastaajan rivistä.