Symptomer

Når du kjører kode som bruker automatisering til å kontrollere Microsoft Excel, kan det oppstå én av følgende feil: I Microsoft Excel 97 og senere versjoner av Excel får du en av følgende feilmeldinger:

Feilmelding 1

Kjøretidsfeil '1004': Metoden <navnet på metoden> for objektet _Global mislyktes

Feilmelding 2

Programdefinert eller objektdefinert feil

I Microsoft Excel 95 får du en av følgende feilmeldinger:

Feilmelding 1

Kjøretidsfeil -2147023174 OLE-automatiseringsfeil

Feilmelding 2

Kjøretidsfeil '462': Den eksterne servermaskinen finnes ikke eller er ikke tilgjengelig.

Årsak

Visual Basic har opprettet en referanse til Excel på grunn av en kodelinje som kaller opp et Excel-objekt, en metode eller en egenskap uten å kvalifisere elementet med en Excel-objektvariabel. Visual Basic frigir ikke denne referansen før du avslutter programmet. Denne feilreferansen forstyrrer automatiseringskoden når koden kjøres mer enn én gang.

Løsning

Du kan løse dette problemet ved å endre koden slik at hvert kall til et Excel-objekt, en metode eller en egenskap er kvalifisert med den riktige objektvariabelen.

Status

Denne virkemåten er etter utforming.

Mer informasjon

Hvis du vil automatisere Microsoft Excel, oppretter du en objektvariabel som vanligvis refererer til Excel-programobjektet eller Excel-arbeidsbokobjektet. Andre objektvariabler kan deretter angis til å referere til et regneark, et område eller andre objekter i Microsoft Excel-objektmodellen. Når du skriver kode for å bruke et Excel-objekt, en metode eller en egenskap, bør du alltid sette den riktige objektvariabelen foran kallet. Hvis du ikke gjør det, etablerer Visual Basic sin egen referanse til Excel. Denne referansen kan forårsake problemer når du prøver å kjøre automatiseringskoden flere ganger. Vær oppmerksom på at selv om kodelinjen begynner med objektvariabelen, kan det utføres et kall til et Excel-objekt, en metode eller en egenskap midt på kodelinjen som ikke står foran en objektvariabel.Følgende trinn illustrerer hvordan du reproduserer dette problemet og hvordan du løser problemet.

Trinn for å gjenskape virkemåten

  1. Start et nytt Standard EXE-prosjekt i Visual Basic. Skjema1 er opprettet som standard.

  2. Klikk ReferanserProsjekt-menyen, og kontroller deretter objektbiblioteket for versjonen av Excel du har tenkt å automatisere.

  3. Plasser en CommandButton-kontroll på Skjema1.

  4. Kopier følgende kodeeksempel til kodevinduet i Skjema1.

          Option Explicit
    
          Private Sub Command1_Click()
             Dim xlApp As Excel.Application
             Dim xlBook As Excel.Workbook
             Dim xlSheet As Excel.Worksheet
             Set xlApp = CreateObject("Excel.Application")
             Set xlBook = xlApp.Workbooks.Add
             Set xlSheet = xlBook.Worksheets("Sheet1")
             xlSheet.Range(Cells(1, 1), Cells(10, 2)).Value = "Hello"
             xlBook.Saved = True
             Set xlSheet = Nothing
             Set xlBook = Nothing
             xlApp.Quit
             Set xlApp = Nothing
          End Sub
    
  5. Klikk StartKjør-menyen, eller trykk på F5 for å starte programmet.

  6. Klikk CommandButton-kontrollen . Det oppstår ingen feil. En referanse til Excel er imidlertid opprettet og er ikke utgitt.

  7. Klikk CommandButton-kontrollen på nytt. Legg merke til at du får en av feilmeldingene som beskrives i delen Symptomer.Obs! Feilmeldingen oppstår fordi koden refererer til cellemetoden uten å kalle opp xlSheet-objektvariabel.

  8. Stopp prosjektet, og endre følgende kodelinje:

    xlSheet.Range(Cells(1,1),Cells(10,2)).Value = "Hello"
    

    Endre kodelinjen slik at den ligner på følgende kodelinje.

    xlSheet.Range(xlSheet.Cells(1,1),xlSheet.Cells(10,2)).Value = "Hello"
    
  9. Kjør programmet på nytt. Legg merke til at du kan kjøre koden flere ganger uten å motta en feilmelding.

Referanser

189618 Du kan få feilmeldingen «Kjøretidsfeil –2147023174» (800706ba)» eller «Kjøretidsfeil 462» når du kjører Visual Basic-kode som bruker automatisering til å kontrollere Word  

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.