18. april 2002 - 09:52 Der er 16 kommentarer og
1 løsning

Word vba kode skriver i forkert dokument

Hej, jeg laver en skabelon i Word2000 der åbner en menu dialogbox med nogle valg, der så ved "OK" skrives ind i dokumentet der er baseret på skabelonen. det virker fint - MEN åbnes nu et nyt dokument baseret på samme skabelon uden at det oprindelige dokument er lukket, skriver koden nu værdierne ind i det første dokument (og oven i dets værdier) og ikke ind i det nye dokument!
hvordan sikrer jeg at koden i dialogboksen kun skriver ind i det dokument der er startet sidst??
Avatar billede a-tot Nybegynder
18. april 2002 - 10:11 #1
Husk at Aktiver "Nyt.doc"
18. april 2002 - 10:14 #2
???
Avatar billede a-tot Nybegynder
18. april 2002 - 10:18 #3
Du skal skrive i din kode følgende før Word kan bruge det nye dokument:
Aktiver "navnet på dit nye dokument"
Herefter er dit nye dokument det aktive dokument. Man kan springe mellem dokumenterne ve at benytte komandoen "Aktiver"
Avatar billede a-tot Nybegynder
18. april 2002 - 10:19 #4
Et lille eks.

'*******************************************************************************

VindueArrangerAlle

'***************
'TABEL SETUP
Aktiver "outfile"
TabelIndsætTabel .KonverterFra = "", .AntalKolonner = "10", .AntalRækker = "4", .OprindKolBredde = "Auto", .Format = "0", .Anvend = "167"
TabelKolonnebredde .Kolonnebredde = "1,6 cm", .AfstMellemKol = "0,25 cm", .NæsteKolonne,

OSV.
Avatar billede a-tot Nybegynder
18. april 2002 - 10:20 #5
Var det at forstå ???
18. april 2002 - 10:21 #6
Når dokumentet er nyt har det jo ikke noget navn andet end "document#"
Avatar billede a-tot Nybegynder
18. april 2002 - 10:23 #7
Lidt mere hjælp:

Sub Opret_Nyt_Dokument :
'*****************************************************************************
' Opret nyt dokument for output

FilerNyt .Skabelon = "\\Server_1_nt\s2nt_c\MSOffice\SHARE\Normal.dot", .NySkabelon = 0
FilerSideopsætning .Fane = "1", .PapirStørrelse = "9", .ØvreMargen = "2 cm", .NedreMargen = "2 cm", .VenstreMargen = "1 cm", .HøjreMargen = "1 cm", .InderMargen = "0 cm", .SideBredde = "29,7 cm", .SideHøjde = "21 cm", .Papirretning = 1, .FørsteSide = 0, .ØvrigeSider = 0, .LodretJustering = 0, .AnvendIndstilPå = 4, .ModståendeSider = 0, .AfstandSidehoved = "1,25 cm", .AfstandSidefod = "1,25 cm", .SektionStart = 2, .LigeUligeSider = 0, .SpecielFørsteSide = 0, .Slutnoter = 0, .LinjeNum = 0, .BegyndNum = "", .FraTekst = "", .Interval = "0", .NumTil = - 1

FilerGemSom .Navn = "outfile.doc", .Format = 2, .LåsRedigering = 0, .Adgangskode = "", .FøjTilListeOverSenestÅbn = 1, .AdgangskodeSkriv = "", .SkrivebeskyttelseAnbefalet = 0, .IntegrerSkrifttyper = 0, .OprindeligtBilledformat = 0, .FormularerData = 0, .SaveAsAOCELetter = 0

'*******************************************************************************
Avatar billede a-tot Nybegynder
18. april 2002 - 10:25 #8
Så gem det med et navn eller med det navn det nu har, husk at gemme filnavnet som en variabel.
18. april 2002 - 10:29 #9
Vi taler forbi hinanden. Jeg anvender en kommando

Selection.typetext "et eller andet"

den skriver bare i det forkerte dokument
18. april 2002 - 10:31 #10
jeg vil ikke angive navn først, men først senere
Avatar billede a-tot Nybegynder
18. april 2002 - 10:32 #11
Hmmmm: Hvordan ser din kode ud, Hvordan opretter du det nye dokument og hvordan har du styr på dokumentes navn ??????
18. april 2002 - 11:40 #12
Undskyld ventetiden, jeg fik andet at se til.

Dokumentet startes med en makro der ikke tildeler navn det skal brugeren selv gøre - til sidst - når makro koden er kørt færdig
18. april 2002 - 11:44 #13
denne kode starter dokumentet

Sub newletter()
'
    Documents.Add Template:="\\ZEBRA\TEMPLATES\eea - templates\newlettertemplate.dot", _
    NewTemplate:=False, DocumentType:=0
End Sub
Avatar billede a-tot Nybegynder
18. april 2002 - 12:19 #14
Jeg ved ikke hvordan du sikrer dig at være i det nye dokument med ovenstående kode. Men hvis du giver dit nye dokument et temp navn så er det nemt. Jeg har ikke andre forslag.

Nedenstående kode opretter et nyt dokument og hopper tilbage til det dokument hvor det nye dokument blev oprettet fra.

Sub Test_af_opret_nyt_doc()
    Documents.Add DocumentType:=wdNewBlankDocument
    Windows("Dokument 1").Activate ' Tilbage til dok1
End Sub
18. april 2002 - 12:52 #15
tak for forslaget, men det forudsætter at det er det første dokument fra word i denne session. hvergang word åbner et nyt lægger den et til. ( eg. dok2, dok3, osv.) jeg ved jo ikke hvad nummer word er nået til når templaten bliver aktiveret. At navngive inden makroen kører, er en løsning, men lidt besværlig, og ikke det brugeren ønsker
Avatar billede a-tot Nybegynder
18. april 2002 - 13:19 #16
Prøv lige dette, herefter er NyDoc = navnet på det dokument du lige har oprettet.

Sub Test_af_opret_nyt_doc()
    Documents.Add DocumentType:=wdNewBlankDocument
    NyDoc = ActiveDocument
End Sub
18. april 2002 - 14:32 #17
Hej igen, jeg tror jeg har løst problemet sådan her:

activedocument.select
Selection.typetext "et eller andet"

Jeg er ikke sikker på at det er det, men det virker

tak for din insats alligevel
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
Kurser inden for grundlæggende programmering

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