31. juli 2006 - 19:48Der er
9 kommentarer og 1 løsning
Åbne et word-dot som doc med en makro fra Excel
Jeg skal bruge en makro, der åbner en Skabelon som doc og henter celle C3 fra Ark Info over i bogmærke "navn" og bevare bogmærket. Og gemmer word-doc som "Navn"-måned-år ex. hans-august-06.
Sub Put_Ark1C3_In_TestDot_Bookmark_BogMark_SaveAsDot_And_Close() 'Reference: 'Microsoft Word 11.0 Object Library
'Husk: 'Word-fil: Test.Dot i C:\Temp har et bogmærke, BogMark, med tekst.
Const Bogmærke As String = "BogMark" Const DotPath As String = "C:\Temp\" Const DotName As String = "Test.dot"
Const Ark1 As String = "Ark1" Const CellStr As String = "C3"
Dim MyWordApp As Word.Application Set MyWordApp = CreateObject("Word.Application") With MyWordApp .Visible = False 'True når du vil følge med .Documents.Open DotPath & DotName, , False, False, , , , , , wdOpenFormatTemplate .Documents(DotName).Activate If .ActiveDocument.Bookmarks.Exists(Bogmærke) Then .ActiveDocument.Bookmarks(Bogmærke).Select .Selection.Text = Worksheets(Ark1).Range(CellStr).Text .Selection.Bookmarks.Add Bogmærke
Debug.Print "The input & the result:" Debug.Print "Word says: " & Worksheets(Ark1).Range(CellStr).Text Debug.Print "Excel said: " & .ActiveDocument.Bookmarks(Bogmærke).Range.Text Else Debug.Print "Bogmærket " & Bogmærke & " findes ikke i dokumentet." End If .Documents(DotName).Close True End With MyWordApp.Quit Set MyWordApp = Nothing End Sub
Sub Put_Ark1C3_In_TestDot_Bookmark_BogMark_SaveAsDocument() 'Reference: 'Microsoft Word 11.0 Object Library
'Husk: 'Word-fil: Test.Dot i C:\Temp har et bogmærke, BogMark, med tekst.
Const Bogmærke As String = "BogMark" Const DotDocPath As String = "C:\Temp\" 'Variabel navn ændret. Const DotName As String = "Test.dot"
Const Ark1 As String = "Ark1" Const CellStr As String = "C3"
Dim MyWordApp As Word.Application Set MyWordApp = CreateObject("Word.Application") With MyWordApp .Visible = False 'True når du vil følge med .Documents.Add DotDocPath & DotName 'Rettet. .Documents(DotName).Activate If .ActiveDocument.Bookmarks.Exists(Bogmærke) Then .ActiveDocument.Bookmarks(Bogmærke).Select .Selection.Text = Worksheets(Ark1).Range(CellStr).Text .Selection.Bookmarks.Add Bogmærke
Debug.Print "The input & the result:" Debug.Print "Word says: " & Worksheets(Ark1).Range(CellStr).Text Debug.Print "Excel said: " & .ActiveDocument.Bookmarks(Bogmærke).Range.Text Else Debug.Print "Bogmærket " & Bogmærke & " findes ikke i dokumentet." End If .Documents(DotName).SaveAs DotDocPath & "Hans-06-August", , , , False 'Rettet, erstat selv med navn osv. 'OBS År før måned giver en bedre oversigt med mange filer over flere år. End With MyWordApp.Quit Set MyWordApp = Nothing End Sub
mvhansen's eksempel er absolut et flot eksempel med rigelig inspiration, så eventuelle point bør gå til ham for at være først.
Jeg har prøvet begge jeres forslag, men jeg får fejl. Jeg kan ikke se hvad fejlene er, men jeg tror det har noget med bogmærket at gøre. Jeg skal hente Cellen C3 i arket Info ind i Bogmærket "Navn". Det skal så bruges til at danne filnavnet.
Som Learningvba skiver, så vil det være en fordel at bruge år før måned. Det kan jeg godt for stå, men så skal
Ups. jeg kom til at trykke Send før tid, så jeg prøver igen...
Som Learningvba skiver, så vil det være en fordel at bruge år før måned. Det kan jeg godt for stå, men så skal filen hedde: "Bogmærket Navn"-åååå-mm. F.eks. Henrik Sørensen-2006-08.
Jeg har svært ved at gå ind og rette i en makro, så der skal ikke være ret mange steder jeg selv skal ind og rode.
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.