|
Fjerne specialtegn fra tekst inden brug af teksten som filnavnDet er meget brugt at bruge indholdet af en celle, som filnavn, når man skal automatisere ”gemning” med en makro. Dette går også godt i de fleste tilfælde, men såfremt celleindholdet indeholder tegn, som er ulovlige i filnavne, går det galt. Denne makro omdanner alle ulovlige karakterer i en celle til "ingenting" og viser resultatet i en meddelelsesboks.
Sub FjernUlovlig() Const RepChr As String = "/\""% *:|><.,?" Dim Erstat As String Dim Navn as String Navn = Range(”A1”).Text For i = 1 To Len(RepChr) Erstat = Mid(RepChr, i, 1) navn = Replace(Navn, Erstat, "") Next i Msgbox Navn End Sub
Hvor A1 er den celle, der indeholder den tekst, der skal være filnavn.
I praksis skal navnet selvfølgelig bruges til at gemme med i stedet for bare at vise det i meddelelsesboksen. Nedenfor er vist et eksempel, hvor dokumentet gemmes i en mappe, der hedder ”C:\Test” med et filnavn, som står i A1:
Sub GemUdenUlovlig() Const RepChr As String = "/\""% *:|><.,?" Dim Erstat As String Dim Navn As String Navn = Range("A1").Text For i = 1 To Len(RepChr) Erstat = Mid(RepChr, i, 1) Navn = Replace(Navn, Erstat, "") Next i ActiveWorkbook.SaveAs Filename:="C:\test\" & Navn & ".xls" End Sub
I A1 står denne tekst: Jan: <>"?*.,|%Jan
Og filnavnet bliver til JanJan.xls
NB! Hvis der allerede er gemt en fil med samme navn i samme mappe, vil brugeren blive promptet for om denne fil skal overskrives eller ej. Ønsker man at der altid overskrives uden prompt, kan man tilføje
Application.DisplayAlerts = False
lige før denkodelibnje, der gemmer og
Application.DisplayAlerts = True
lige efter.
|