Avatar billede teamdev Novice
01. oktober 2013 - 14:02 Der er 6 kommentarer og
1 løsning

danne kommasepareret fil med indhold fra undermappe

Hejsa kloge mennesker

Jeg har fundet en lille VBscript macro der kan trække indholdet af en mappe ind i et regneark.

Det er bare ikke helt det jeg ønsker.
Jeg har brug for et vbscript der finder filnavne i en definerbar undermappe, opretter en kommasepareret fil med nogle kolonner, der indeholder fragmenter af filnavnene.

Det ville være perfekt hvis rækkefølgen kunne sorteres på et af fragmenterne.

Giver det mening?
Avatar billede tofte Juniormester
01. oktober 2013 - 20:17 #1
man kan nemt kode et vbsrcipt som laver tricket, men hvis det bare er filnavnet du vil have kan du klare det med:
dir C:\windows /B /ON > udfil.csv

så kan du efterfølgende åbne udfil.csv i excel med
start udfil.csv
Avatar billede teamdev Novice
01. oktober 2013 - 21:00 #2
Hej tofte,

Det er ikke bare filnavnet jeg skal have fat i.

Filnavnet er sammensat af en dato (år/md/dd) noget tekst og nogle cifre.

Det jeg har brug for er at der kigges i den rette mappe (md)
Og alle filnavne bliver brudt op i del elementer (kolonnerne)
De enkelte elementer klistres ind i csv filen

eks.

Mappe 02
YYYY_MM_DD_Tekst1_Ciffer1.xls
YYYY_MM_DD_Tekst2_Ciffer2.xls
YYYY_MM_DD_Tekst3_Ciffer3.xls

Script henter så alle filerne og ombryder dem i dele (Tekst og Ciffer)
Tekster rettes (replace) så dobbelt a bliver til å etc
Resultat sorteres på tekst,alfabetisk
Avatar billede MadsHaupt Juniormester
02. oktober 2013 - 12:05 #3
Du kan bruge dette vbscript til at få filnavnene i mappen, hvis du vil sorter de navne så skal du lave din egen funktion til det.

VBScript:
Set fso = CreateObject("Scripting.FileSystemObject")
Set ObjFolder = fso.GetFolder("C:\Windows")
For Each ObjFile In ObjFolder.Files
    ObjOutFile.WriteLine(ObjFile.Name & String(50 - Len(ObjFile.Name), " ") & ObjFile.Path)
Next
ObjOutFile.Close


Funktioner i vbscript:
En funktion skal havde en værdi eksempel:
Function a(value)
a = value
Exit Function
End Function


En sub må ikke havde en værdi eksempel:
Sub alert(message)
MsgBox(message)
End Sub



Og du kan bruge en list til at sorter med, eksempel:
Set list = CreateObject("System.Collections.ArrayList")
index = 0
list.Insert index, "value"
list.Add "value"
list.Remove "value"
list.RemoveAt index
list.Add "value"
MsgBox(list.Count)
MsgBox(list(0))
Avatar billede teamdev Novice
03. oktober 2013 - 16:18 #4
Det kan jeg ikke helt få til at virke.

Den brokker sig over at ObjFile ikke er defineret.
Avatar billede teamdev Novice
03. oktober 2013 - 16:42 #5
Jeg har besluttet at droppe denne løsning men arbejde videre i excel macro verdenen istedet.



MadsHaupt - Smid svar- så får du point
Avatar billede MadsHaupt Juniormester
03. oktober 2013 - 17:18 #6
svar
Avatar billede MadsHaupt Juniormester
03. oktober 2013 - 17:18 #7
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester