Avatar billede naviairsuperbruger Nybegynder
28. januar 2004 - 13:08 Der er 4 kommentarer og
2 løsninger

Fejl! Ukendt argument for parameter

Vi er i gang med, at  opgradere fra Office 97 til Office 2003.

Dette giver desværre nogle problemer, hvad angår vores skabeloner.

Alle steder, hvor vi har brugt  "automatisk" felter står der "Fejl! Ukendt argument for parameter", hvis de åbnes med Word 2003.

Vi har lokaliseret fejlen til, at være den bagved liggende kode i Word, som fra 97 til 2003 er skiftet fra dansk til engelsk.

Vi har konstrueret et VBA script, som låser skabelonen op, viser felter og laver en søg/erstat af felterkoder, f.eks. "førstestort" bliver til "FirstCap" osv. osv.

I nogle tilfælde virker dette, men andre gange skal vi fysisk ind og genoprette feltet med de nye engelske betegnelser.

Er der nogen, som har været ude for dette, som kan yde lidt assistance. Evt. komme med en bedre "løsning" end vi har.
Avatar billede jkrons Professor
28. januar 2004 - 16:09 #1
Været ude for det? Ja!  Fundet en bedre løsning? Desværre ikke :-(
Avatar billede jkrons Professor
28. januar 2004 - 16:12 #2
Jeg brugte den makro, som kan hentes fra MS på dette link, men den fandt desværre heller ikke alt - og så varc der kun den manuelle metode tilbage.

http://support.microsoft.com/default.aspx?scid=kb;da;243013
Avatar billede naviairsuperbruger Nybegynder
28. januar 2004 - 22:49 #3
Jkrons: Linket på siden virker ikke, så venter til, at høre fra M$ om dette, så jeg kan få testet makroen af.
Avatar billede naviairsuperbruger Nybegynder
11. februar 2004 - 14:34 #4
Jkrons: Jeg har self fundet løsningen, men eftersom dit link gav mig en af koderne, som jeg skulle bruge får du 50 point for din hjælp...

Jeg smider lige koden her, så du kan bruge den selv, hvis du har lyst. Der er stadig et par små fejl og koden er ikke optimeret, så kunne sikkert være "pænere".

------------------

Sub Felter()
'
' Felter Makro
' Denne makro søger efter Word97 felter med danske betegnelser og ændre dem til engelske Word200x format.
'
    Application.ScreenUpdating = False
    Application.DisplayAlerts = wdAlertsNone
   
    If ActiveDocument.ProtectionType <> wdNoProtection Then
        ActiveDocument.Unprotect
    End If
    If ActiveWindow.View.ShowFieldCodes = False Then
        ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes
    End If
   
' Søg og erstat alle danske betegnelser med engelske.

    Call DoReplace
   
    Selection.WholeStory
    Selection.Fields.Update
   
' Søg og erstat alle danske betegnelser med engelske i Hovedet af dokumentet

    For i = 1 To 2
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
       
        Call DoReplace
       
        Selection.WholeStory
        Selection.Fields.Update
       
        ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
       
        Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext
    Next

    Selection.HomeKey Unit:=wdStory
' Søg og erstat alle danske betegnelser med engelske i foden af dokumentet

    For i = 1 To 2
   
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
       
        Call DoReplace
           
        Selection.WholeStory
        Selection.Fields.Update
       
        ActiveWindow.ActivePane.View.Type = wdPrintView
        ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
     
        Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext
    Next

    If ActiveWindow.View.ShowFieldCodes = True Then
        ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes
    End If
    If ActiveDocument.ProtectionType = wdNoProtection Then
        ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
    End If
   
    Application.ScreenUpdating = True
    Application.DisplayAlerts = wdAlertsAll
   
End Sub

Sub DoReplace()
    Dim SearchFields, ReplaceFields, i
    SearchFields = Array ("alfabetisk", "arabertal", "initstort", "mængdetekst", "valutatekst", "førstestort", "småbogstav", "ordenstal", "ordenstekst", "Romertal", "stortbogstav", "Fletformat", "Tegnformat")
    ReplaceFields = Array("alphabetic", "Arabic", "Caps", "CardText", "DollarText", "FirstCap", "Lower", "Ordinal", "OrdText", "Roman", "Upper", "Mergeformat", "Charformat")
                         
    For i = 0 To UBound(SearchFields)
        Selection.HomeKey Unit:=wdStory
     
        With Selection.Find
            .Text = SearchFields(i)
            .Replacement.Text = ReplaceFields(i)
            .Forward = True
            .Wrap = wdFindAsk
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Next i
   
End Sub
Avatar billede naviairsuperbruger Nybegynder
11. februar 2004 - 14:35 #5
OK ok du fik 75 ;o)
Avatar billede jkrons Professor
11. februar 2004 - 15:01 #6
Tak for point - og for løsningen.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester