Automatisk hente subdocuments til et masterdocument
Problemet går på at jeg har en række dokumenter liggende i en folderstruktur, som jeg automatisk skal samle i flere masterdokumenter. Det jeg vil er derfor at oprette en macro hvor jeg angiver en sti til hvor dokumenterne ligger og så laves der et hoveddokument, med tilhørende indholdsfortegnelse og sidehoved og sidefod.
Nu er jeg ikke supergod til VBA så det driller maks.
Og her lidt kode. Sidehoved og sidefod driller, da der indsættes en hulens bunke sectionbreaks, når man bruger subdocuments. Nogen måde at undgå de sectionbreaks og kun have pagebreaks??
Sub A_WORDopslag_HENL()
Selection.WholeStory Selection.Delete Unit:=wdCharacter, Count:=1 'slet alt i dokumentet Selection.HomeKey Unit:=wdStory
Set fs = Application.FileSearch With fs
.LookIn = "T:\ETOman\Budget & Actual 2006\Q1-estimate 2006\ETO - Investeringer Q1-2006 - Originaler\Copy of PBP\" 'HUSK..! sidste backslash '\' .FileName = "*.doc" .SearchSubFolders = True If .Execute(SortBy:=msoSortByFileName, _ SortOrder:=msoSortOrderAscending) > 0 Then MsgBox "There were " & .FoundFiles.Count & _ " file(s) found." For i = 1 To .FoundFiles.Count Dim FilnavnVar As String FilnavnVar = fs.FoundFiles(i) 'sæt variablen til den fundne fils fulde stinavn Subdoc (FilnavnVar) 'kald indsætfunktionen med fuld filsti som parameter Next i Else MsgBox "There were no files found." End If End With
A_Index 'kald funktion for index
End Sub Function Subdoc(FundetFilVar As String)
Dim LastBSlash As Integer
LastBSlash = InStrRev(FundetFilVar, "\")
If (Mid(FundetFilVar, LastBSlash + 1, 1) <> "~") Then ActiveDocument.ActiveWindow.View.Type = wdMasterView ActiveDocument.Subdocuments.AddFromFile _ Name:=FundetFilVar 'indsæt den fundne fil (parameteroverført) som subdocument
Selection.InsertBreak Type:=wdPageBreak 'indsæt sideskift i master document End If
Selection.TypeParagraph Selection.TypeParagraph With ActiveDocument .TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _ True, UseHeadingStyles:=True, UpperHeadingLevel:=1, _ LowerHeadingLevel:=3, IncludePageNumbers:=True, AddedStyles:="", _ UseHyperlinks:=True, HidePageNumbersInWeb:=True .TablesOfContents(1).TabLeader = wdTabLeaderDots .TablesOfContents.Format = wdIndexIndent End With
Selection.InsertBreak Type:=wdPageBreak 'indsæt sideskift i master document (til INDEX)
End Function
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.