Excel Document_Open() problem...
Hej!Jeg har fået et irriterende Excel-VBA problem med Document_Open.
Jeg har lavet følgende kode, som er sat ind som modul under ThisDocument:
[code]Private Sub Document_Open()
Dim strFirma As String
Dim strOverskrift As String
Dim strSti As String
Dim strFilnavn As String
Dim lngConfirm As Long
strSti = "\\FP01\Faelles\Salg\Tilbud\"
strFirma = ActiveDocument.Bookmarks("bmFirma").Range.Text
strOverskrift = ActiveDocument.Bookmarks("bmOverskrift").Range.Text
strFilnavn = strOverskrift & " - " & Replace(strFirma, ".", "_") & ".docx"
lngConfirm = MsgBox(Prompt:="Dokumentet bliver gemt på følgende placering: " & strSti & strFirma & "\" & strFilnavn, _
Buttons:=vbYesNo + vbDefaultButton1, _
Title:="Bekræft filplacering")
If lngConfirm = vbNo Then Exit Sub
Selection.WholeStory
Selection.Fields.Unlink
Selection.HomeKey Unit:=wdStory
On Error Resume Next
MkDir strSti & strFirma
ActiveDocument.SaveAs FileName:=strSti & strFirma & "\" & strFilnavn, FileFormat:=wdFormatDOCX
ActiveWindow.Caption = ActiveDocument.Name
End Sub[/code]
Koden gør hvad den skal: Gemmer dokumentet under nyt navn således, at det oprindelige dokument ikke overskrives. Dette skal ske umiddelbart efter at det sammenkædede dokument er flettet.
Dette fungerer perfekt, når man åbner Word-dokumentet direkte (Filnavn.docm) - men hvis jeg åbner det fra Excel (hvor det er integreret som objekt/kæde), så får jeg flere VB-fejl, som siger, at objektet ikke eksisterer. Med andre ord - koden køres før dokumentet er fuldt indlæst og kæderne er opdaterede.
Hvorfor er der denne forskel i adfærden? Jeg mener, om jeg åbner dokumentet fra stifinder eller fra Excel er vel ligemeget?
Håber noget ved, hvad jeg kan gøre - enten ved en kode, der først køres når kæderne er opdaterede eller blot ved, hvorfor Word reagerer som den gør.
Tillægsspørgsmål: Hvordan undgår jeg, at scriptet fjerner hyperlinks fra dokumentet og altså kun fjerner kæderne?
På forhånd tak!
MVH
Søren Larsen