27. marts 2003 - 23:44Der er
15 kommentarer og 1 løsning
BookMarks
Jeg sidder pt og døjer med Bookmarks (reference fra Excel). Et af mine Bookmark hedder Navn og anvendes 2 gange i worddokumentet men jeg kan kun anvende nævnte bookmark et sted. Er der en anden måde hvorpå man kan indsætte Navn automatisk evt. med reference til nævnte Bookmark? Jeg har forsøgt med {Ref Navn} - uden resultet.
Jeg ved reelt ikke hvordan man overfører fra Excel til Word. Men forholdet er det samme, når du overfører data fra Access til Word ved en VBA-procedüre. Jeg har flere situationer måttet oprette et Bookmark 2 gange i Word.
Skal jeg overføre feltet Navn flere gange opretter jeg lige så mange Bookmarks som antal gange jeg skal bruge navnet, og kalder Bookmarks for Navn, Navn1, Navn2 o.s.v. således:
Hvis du skal bruge indformationen 2 gange og ved hvor den skal stå, så kan du godt bruge {Ref bogmærkenavn}, men du skal huske at opdatere feltet bagefter eller sker der ingenting. Opdatering gør du med følegende kode:
I må lige forklare jer lidt bedre. Mugs: Hvor skal pågældende VBA anbringe. Jeg kan se at dn kalder en procedure - hvorledes laves den - eller er der noget jeg har misforstået? Richardt: Hvor skal den anbringes: Private Sub Document_New()?
Jamen det har du da ret i. Informationerne anbringes fra celler i Excel over i Word vha VBA og Bookmarks (f.eks. Navn (som refererer til en celle "J8" i excel)). Det fungerer fint men da jeg skal bruge F.eks. Navn 2 steder i worddokumentet har jeg det problem at bookmark kun kan anvendes et sted. Jeg har prøvet at anbringe det du skrev i wordskabelonen (Epikrise.dot)under: Private Sub Document_Open() men det giver ikke det ønskede resultat. Jeg ved ikke om ovenstående er til at forstå?
Ovenstående linie kalder nedenstående funktion, der indsætter "Indhold" i bogmærket, så du senere kan referere til bogmærkets indhold
Nedenstående funktion skal ligge i Word. F.eks. i et modul i Epikrise.dot
Public Sub SkrivTilBogmaerke(bmkName As String, bmkNyText As String) If ActiveDocument.Bookmarks.Exists(bmkName) = True Then ActiveDocument.Bookmarks(bmkName).Select If Not ActiveDocument.Bookmarks(bmkName).Range.Text = "" Then Selection.Range.Delete End If
If Not bmkNyText = "" Then 'Indsætter tekst (og sletter bokmærke) '**** Sletter evt. overflødige linieskift. While Asc(Right(bmkNyText, 1)) = 13 Or Asc(Right(bmkNyText, 1)) = 10 bmkNyText = Left(bmkNyText, Len(bmkNyText) - 1) Wend Selection.TypeText "." 'Bruges til at bevare bogmærket Selection.MoveLeft wdCharacter, 1, wdExtend Selection.Bookmarks.Add bmkName Selection.MoveLeft wdCharacter, 1 Selection.TypeText bmkNyText Selection.Range.Delete Else Selection.Bookmarks.Add bmkName End If End If End Sub
Øh Jeg troede faktisk at man hver gang skal accepter eller afvise og kun acceptere hvis svaret har givet det ønskede resultat - men OK jeg er ny på Eksperten. Tak for svaret - jeg prøver senere om jeg kan få det til at fungere.
Ups - Det var ikke meningen du skulle acceptere mit svar - bare lade det stå indtil du var blevet hjulpet færdig - det kunne jo være at der var andre som gav nogle guldkorn, så du ville dele point mellem flere.
Men nu skal jeg nok hjælpe dig færdig *S*
Du kunne eventuelt sende dit Excel regnark og dit word dokument til mig rvejemad@csc.com (hvis det bliver ved med at drille), så kunne jeg nærlæse din kode *S*
Det jeg påpegede imorges var blot, at du (som rvm siger), at du ikke kan bruge det samme bogmærkenavn mere end een gang. Eksemplet er hvordan jeg gør fra Access til Word. Jeg aner intet om, hvordan du gør i Excel.
En anden og måske mere simpel løsning er, at du lavet to bogmærker i Word. Placer dem der hvor informationen skal stå, og send dem so over fra Excel to gange i koden.
Fx Wdapp.ActiveDocument.Bookmarks("Navn1").Range.Text = Navn Wdapp.ActiveDocument.Bookmarks("Navn2").Range.Text = Navn
Hvor Navn er din variabel i Excel og Navn1 og Navn2 er navnene på dine bogmærker i Word.
Jeg nåede desværre ikke at afprøve din metode - den Jan serverede var let tilgængelig og lignede noget jeg i forvejen var igang med. MEN mange tak for din indsats. vh Steen
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.