21. februar 2005 - 14:56Der er
28 kommentarer og 1 løsning
Flette til flere filer i Word 2002
Jeg har et excell-ark som jeg skal flette ind i et word dokument (master) - Men jeg vil meget gerne have at hver flette post bliver flettet til hver sin fil. Kan det lade sig gøre? Eneste løsning jeg kan se, er at man kan flette til et samlet dokument.
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Standarden er som du nævner - men herefter kunne Word dokument blive opsplittet en fil pr. sektion. Dette kræver selvfølgelig lidt VBA-kode - men det kan lade sig gøre.
Sub GemHverSektionForSigSelv() 'Denne makro gemmer hver sektion i et dokument i hvert sit dokument Svar = InputBox("Indtast filnavn", "Filnavn") Navn = ActiveDocument.Name
NrSec = ActiveDocument.Sections.Count For i = 1 To NrSec ActiveDocument.Sections(i).Range.Select Selection.Copy Documents.Add DocumentType:=wdNewBlankDocument Selection.Paste ActiveDocument.SaveAs Svar & i ActiveDocument.Close Next End Sub
Jeg opretter makroen - så langt forstår jeg - Hvornår skal den køres? Jeg kan kun få den til at afvikle på første side... Men det er måske også bare det du mener? At man skal kører makroen for hver side?
Den skal køres når du har flettet dokumentet. Så vil det bestå af flere sektioner, der så bliver kopieres over i nye dokumenter via makroen. Hvis du stadig har problemer, så send dit testdokument til mig - så kikker jeg på det :-) rvm(snabela)teknologisk(punktup).dk
'Husk at sætte referancen til Excel i Words makromiljø via Tools/References Microsoft Excel X.X Object Library
Sub GemHverSektionForSigSelv() 'Denne makro gemmer hver sektion i et dokument i hvert sit dokument
Dim xlApp As Excel.Application Dim svar As Boolean
'Opretter Excelobjektet xlApp Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True
'Åbner det rigtige regneark svar = xlApp.Dialogs(xlDialogOpen).Show
'Hvis der er valgt et regneark If svar = True Then
'Nummeret på den kolonne i Excel, hvor navnet står - I DETTE TILFØLDE KOLONNE A Kolonne = 1
'Navnet på moder dokumentet Navn = ActiveDocument.Name
'Denne kode gennemløber alle sektioner i moderdokumentet For række = 1 To Documents(Navn).Sections.Count Documents(Navn).Sections(række).Range.Select Selection.Copy Documents.Add DocumentType:=wdNewBlankDocument Selection.Paste ActiveDocument.SaveAs xlApp.Cells(række, Kolonne).Value & ".doc" ActiveDocument.Close Next End If
Sub GemHverSektionForSigSelv() 'Denne makro gemmer hver sektion i et dokument i hvert sit dokument
Dim xlApp As Excel.Application Dim svar As Boolean
'Opretter Excelobjektet xlApp Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True
'Åbner det rigtige regneark svar = xlApp.Dialogs(xlDialogOpen).Show
'Hvis der er valgt et regneark If svar = True Then
'Nummeret på den kolonne i Excel, hvor navnet står - I DETTE TILFØLDE KOLONNE A Kolonne = 1
'Navnet på moder dokumentet Navn = ActiveDocument.Name
'Denne kode gennemløber alle sektioner i moderdokumentet For række = 1 To Documents(Navn).Sections.Count Documents(Navn).Sections(række).Range.Select Selection.Copy Documents.Add DocumentType:=wdNewBlankDocument Selection.Paste
'Sletter den ekstra sektion som kopiering medfører Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend Selection.Delete Unit:=wdCharacter, Count:=1
ActiveDocument.SaveAs xlApp.Cells(række, Kolonne).Value & ".doc" ActiveDocument.Close Next End If
Ihhh... altså ... den gemmer ikke formateringen - Nu gider jeg snart ikke mere!! - Mit dokument er "liggende" - Men når jeg bruger din makro bliver det nye dokument stående...
Her er f.eks. en kode der sætter de nye dokumenter til samme papirretning som det gamle:
Sub GemHverSektionForSigSelv() 'Denne makro gemmer hver sektion i et dokument i hvert sit dokument
Dim xlApp As Excel.Application Dim svar As Boolean Dim Antal As Integer
'Opretter Excelobjektet xlApp Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True
'Åbner det rigtige regneark svar = xlApp.Dialogs(xlDialogOpen).Show
'Hvis der er valgt et regneark If svar = True Then
'Nummeret på den kolonne i Excel, hvor navnet står Kolonne = 1
'Navnet på moder dokumentet Navn = ActiveDocument.Name
'Denne kode gennemløber alle sektioner i moderdokumentet For række = 1 To Documents(Navn).Sections.Count Documents(Navn).Sections(række).Range.Select Selection.Copy Documents.Add DocumentType:=wdNewBlankDocument
Tak - jeg orker ikke at bruge mere tid på dette - Jeg laver to data filer - Så virker det!
Endnu engang tak for al din hjælp!!
Pop
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.