Jeg har brug for hjælp til at udvide mit script fra at kunne gennemse en mappe, til også at kunne medtage undermapper. Der er vel noget med at jeg skal have lavet en rekursiv funktion, som starter forfra når den løber ind i en mappe. Jeg har ikke den store VBA erfaring, så har brug for et godt hint.
pft
Private Sub CommandButton1_Click()
Dim strFilePath As String Dim strPath As String Dim intCounter As Integer Dim strFileName As String Dim OldServer As String Dim objDoc As Document Dim objTemplate As Template Dim dlgTemplate As Dialog Dim nServer As Integer
'hardcode the name of the old server.
OldServer = "server1" nServer = Len(OldServer) strFilePath = InputBox("What is the folder location that you want to use?")
If Right(strFilePath, 1) <> "\" Then strFilePath = strFilePath & "\" strFileName = Dir(strFilePath & "*.doc")
Do While strFileName <> "" Set objDoc = Documents.Open(strFilePath & strFileName) Set objTemplate = objDoc.AttachedTemplate Set dlgTemplate = Dialogs(wdDialogToolsTemplates) strPath = dlgTemplate.Template
objDoc.AttachedTemplate = NormalTemplate
strFileName = Dir() objDoc.Save objDoc.Close
Loop
Set objDoc = Nothing Set objTemplate = Nothing Set dlgTemplate = Nothing
Dim strFilePath As String Dim strPath As String Dim intCounter As Integer Dim strFileName As String Dim OldServer As String Dim objDoc As Document Dim objTemplate As Template Dim dlgTemplate As Dialog Dim nServer As Integer
'hardcode the name of the old server.
OldServer = "filserver" nServer = Len(OldServer) strFilePath = InputBox("What is the folder location that you want to use?")
OldServer = "filserver" nServer = Len(OldServer) strFilePath = InputBox("What is the folder location that you want to use?")
If Right(strFilePath, 1) <> "\" Then strFilePath = strFilePath & "\" sfList = bygSubFolderList(strFilePath) 'HER OPBYGGES LISTE OVER SUBFOLDERS PÅ DET VALGTE STINIVEAU MsgBox (sfList) 'Her vises disse
Rem men denne process skal gentages for hver subfolder - indtil der ikke er flere
strFileName = Dir(strFilePath & "*.doc")
Do While strFileName <> "" Set objDoc = Documents.Open(strFilePath & strFileName) Set objTemplate = objDoc.AttachedTemplate Set dlgTemplate = Dialogs(wdDialogToolsTemplates) strPath = dlgTemplate.Template
If LCase(Left(strPath, nServer)) = LCase(OldServer) Then objDoc.AttachedTemplate = NormalTemplate End If
strFileName = Dir() objDoc.Save objDoc.Close
Loop
Set objDoc = Nothing Set objTemplate = Nothing Set dlgTemplate = Nothing
End Sub Private Function bygSubFolderList(folderspec) 'HER OPBYGGES LISTEN Dim fs, f, f1, s, sf s = "" Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(folderspec) Set sf = f.SubFolders For Each f1 In sf s = s & f1.Name + "|" Next
Det var også kun lidt inspiration - skal nok prøve lidt mere.....
Synes godt om
Ny brugerNybegynder
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.