01. september 2006 - 16:21Der er
16 kommentarer og 2 løsninger
Problemer med programmering med bookmarks i word
Jeg har en word skabelon, hvor man ved opstart indtaster nogle oplysinger som efter man klikker på "ok" bliver lagt ind i word dokumentet. Men jeg får ikke alle oplysninger på dokumentet. Jeg bruger bookmarks. Jeg får en fejlmeddelelse om at programmet ikke kan finde "bookmarken". Jeg har kontroleret og prøvet flere gange at tilføje bogmærket med samme navn osv. men lige lige lidt hjælper det. Er der nogen som ´ved om det er problemer med VBA og bookmarks i word 2003? Det har virket før på word 97, men efter jeg har kopiret fra en anden skabelon og samtidg tilføjet nogle flere felter, virker det ikke mere.
Det er godt nok noget gammel kode - fra før Word97 :-)
Jeg ville ændre alle stederne, hvor jeg indsætter i bogmærker til dette:
If ActiveDocument.Bookmarks.Exists("Bogmærkenavn") = True Then ActiveDocument.Bookmarks("Bogmærkenavn").Select 'indsæt data fra dialogboksen WordBasic.Insert dlg.boxSign End If
Som rvm nævner er det "en røst fra fortiden" - men det virker alligevel hvis du sletter det KOLON, som er til slut i linierne ved "boxAdresse1 & 2". Det er jo netop ikke en ledetekst - men def. af tekstbokse - derfor.
Det kunne gøres noget mere "letbenet" m/anvendelse af en "Userform & VBA fra vor tid".
rvm: jeg har nu ændret den kode som du siger jeg skal ændre, men jeg får kun firma med, som er den første, og resten tager den ikke med. Hvad går galt. Her min nye kode:
Dim dlg As Object: Set dlg = WordBasic.CurValues.UserDialog WordBasic.Dialog.UserDialog dlg
WordBasic.ViewHeader
If ActiveDocument.Bookmarks.Exists("Firma") = True Then MsgBox "Firma findes" ActiveDocument.Bookmarks("Firma").Select 'indsæt data fra dialogboksen WordBasic.Insert dlg.boxFirma End If
If ActiveDocument.Bookmarks.Exists("Adresse1") = True Then MsgBox "Adresse1 findes" ActiveDocument.Bookmarks("Adresse1").Select 'indsæt data fra dialogboksen WordBasic.Insert dlg.boxAdresse1 End If
If ActiveDocument.Bookmarks.Exists("Adresse2") = True Then MsgBox "Adresse2 findes" ActiveDocument.Bookmarks("Adresse2").Select 'indsæt data fra dialogboksen WordBasic.Insert dlg.boxAdresse2 End If
If ActiveDocument.Bookmarks.Exists("By") = True Then MsgBox "By findes" ActiveDocument.Bookmarks("By").Select 'indsæt data fra dialogboksen WordBasic.Insert dlg.boxBY End If
If ActiveDocument.Bookmarks.Exists("Att") = True Then MsgBox "Att findes" ActiveDocument.Bookmarks("Att").Select 'indsæt data fra dialogboksen WordBasic.Insert dlg.boxAtt End If
WordBasic.CloseViewHeaderFooter
If ActiveDocument.Bookmarks.Exists("Afsender") = True Then MsgBox "Afsender findes" ActiveDocument.Bookmarks("Afsender").Select 'indsæt data fra dialogboksen WordBasic.Insert dlg.boxAfsender End If
If ActiveDocument.Bookmarks.Exists("Overskrift") = True Then MsgBox "Overskrift findes" ActiveDocument.Bookmarks("Overskrift").Select 'indsæt data fra dialogboksen WordBasic.Insert dlg.boxOverskrift End If
If ActiveDocument.Bookmarks.Exists("Dato") = True Then MsgBox "Dato findes" ActiveDocument.Bookmarks("Dato").Select 'indsæt data fra dialogboksen WordBasic.Insert dlg.boxDato End If
If ActiveDocument.Bookmarks.Exists("Jobnr") = True Then MsgBox "Jobnr findes" ActiveDocument.Bookmarks("Jobnr").Select 'indsæt data fra dialogboksen WordBasic.Insert dlg.boxJobnr End If
If ActiveDocument.Bookmarks.Exists("Filnavn") = True Then MsgBox "Filnavn findes" ActiveDocument.Bookmarks("Filnavn").Select 'indsæt data fra dialogboksen WordBasic.Insert dlg.boxFilnavn End If
If ActiveDocument.Bookmarks.Exists("Sign") = True Then MsgBox "Sign findes" ActiveDocument.Bookmarks("Sign").Select 'indsæt data fra dialogboksen WordBasic.Insert dlg.boxSign End If
okay, det det var som supertekst skrev at det var pga. COLON at det ikke virkede. Mit problem er bare nu at når jeg åbner dokumentet, så skal makro starte med det samme fordi jeg har navngivet makroen "AutoExec", hvilket også er fint nok, men når jeg indtaster data i formen, så få jeg fejlmeddelelsen "kommandoen er ikke tilgængelig, da der ikke er noget åbent dokument" Hvad går galt?
Så vidt jeg kan se - har du ikke slettet de to :'er, som jeg nævnte i mit indlæg. WordBasic.TextBox 10, 62, 300, 18, "boxAdresse1:" WordBasic.TextBox 10, 82, 300, 18, "boxAdresse2:"
Der kommer kun firmanavnet - da koden derefter går i fejlrutinen! :-)
Den "letbenede" skal jeg nok komme med - men send en mail til: pb@supertekst-it.dk, så får du hele filen incl. userform m.v.
supertekst: okay, det virker. Men hvordan kunne du sende mig skabelonen hvor makroen også vare tilknyttet? når jeg sender skabelonen videre til andre kommer makroen ikke med. Gøre du noget specielt?, skal jeg indstille noget i skabelonen??
supertekst: at jeg ikke kan få makroen med når jeg flytter skabelonen fra en computer til en anden, kan det have noget at gøre med at makroen er programmeret i Visual basic under mappen "Normal" Thisdokument? Fiunktionen AutoNew måske ligge et andet sted?
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.