Avatar billede mikh Juniormester
25. marts 2004 - 16:00 Der er 3 kommentarer og
1 løsning

Overførsel af data fra excel til Word

Styresystem: Win 2000 og XP.

Beskrivelse:
Jeg er i gang med et projekt, hvor der først importeres eksterne data til et regneark i Excel.
Disse data gennem går derefter adskillige beregninger og spredes ud i 15-20 regnark i projektmappen.
Når beregningerne er slut, kopieres de relevante resultater over i Word, som en endelig rapport til slutbruger.
Undervejs kan bruger foretage en række valg, som præsenteres i 5-6 dialogbokse.
Det meste er styret af VBA.

Spørgsmål:
Når jeg i slutningen af ovenstående proces ”smider” data over i Word, har jeg ikke nogen problemer første gang jeg gør det, men hvis jeg gør det igen lige efter, får jeg fejl ”462: The remote server machine does not exist or is unavarable”.

Skelettet i min kode ser således ud:
Sub KopierTilWordTest()
  'Dim MSW As Word.Application
  Dim MSW As Object
 
  On Error GoTo FejlBehandling
  Call InitierTest
 
  Set MSW = GetObject(, "Word.Application")

  MSW.Visible = True
  Documents.Add Template:= _
    varStiTilSkabeloner & "\Specifikationer.dot" , NewTemplate:=False, DocumentType:=0
 
  ’Her kommer så koden, der smider data fra Excel til Word og det virker ;-)

  MSW.Quit
  Set MSW = Nothing

Exit Sub

FejlBehandling:
  Select Case Err.Number
    Case 91
'      MSW.Quit
      Resume Next
    Case 429
      Set MSW = CreateObject("Word.Application")
      Resume Next
    Case 462
'      MsgBox Err.Number & Error(Err.Number)
'      Set MSW = Nothing
'      MSW.Quit
'      Resume
    Case 5941
      MsgBox Err.Number & Error(Err.Number)
      MSW.Selection.MoveUp Unit:=wdLine, Count:=1
    Case Else
      MsgBox Err.Number & Error(Err.Number)
  End Select
End Sub

Jeg har på fornemmelsen at problemet har noget med oprydning efter den første kørsel at gøre.
Hvis jeg ser i Task Manager kører WINWORD.EXE nogle gange som process og andre gange ikke.

De mange udkommenteringer i fejlproceduren er udtryk for diverse forsøg under vejs. Foruden de Err.Number, der fremgår af koden har jeg også undervej fået nogle uden forklaring og med et stort negativt nummer.

I korthed: hvad gør jeg for at undgå eller handle fejl 462?
Avatar billede kedde65 Praktikant
25. marts 2004 - 19:32 #1
Du bør erstatte denne linie

Set MSW = GetObject(, "Word.Application")

med

set MSW = createObject("Word.Application") eller sætte en reference til Word fra Excel og bruge

dim MSW as word.application
set MSW = new word.application

VH CK
Avatar billede mikh Juniormester
26. marts 2004 - 14:40 #2
Hej CK
Den første del:
Set MSW = GetObject(, "Word.Application")
med
set MSW = createObject("Word.Application") eller sætte en reference til Word fra Excel og bruge
er ok i min kode, da fejlbehandling på Err.Number 429 netop tager højde for denne situation. Men ikke 462!

Vedr:
dim MSW as word.application
set MSW = new word.application

har jeg prøvet det tidligere og er i tvivl om det er ok med object eller om det skal være word.application. Jeg har imidlertid ændret på koden siden, så jeg skulle måske prøve igen. Ved du hvad forskellen er om jeg erklærer object eller word.application?

Mvh
mikh
Avatar billede kedde65 Praktikant
28. marts 2004 - 17:55 #3
Jeg ved ikke hvad fejlkode 429 og 462 tager højde for, men jeg ved at man kun bør bruge Set MSW = GetObject(, "Word.Application"), hvis du skal arbejde med Com+ Service eller MTS Service, og da du ikke skal det i det her scenarie, så bør du bruge set MSW = createObject("Word.Application") da den er hurtigere og beregnet til netop det du skal bruge den til.

Ja der er stor forskel på om du bruger "as Object" eller "As Word.Application" der er for det første den forskel, at Word.Application ikke fylder nær så meget som Object, og dermed går det hurtigere. Desuden så får du mulighed for at udnytte IntelliSence der går at du får en masse hjælp i VBA editoren.

VH CK
Avatar billede mikh Juniormester
22. april 2004 - 11:56 #4
Jeg har desværre ikke haft tid til dette projekt i en periode.

Men netop i dag har jeg fundet et skriv hos Microsoft:
Knoledge Base-artikel 319832,
som beskriver og løser problemet.

Hermed lukker jeg spørgsmålet
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