Exceli automaatika ei suuda teist korda kood töötab

Sümptomid

Kui koodi, mis kasutab automatiseerimine kontrolli Microsoft Excel töötab, võib ilmneda üks järgmistest tõrketeadetest:

Microsoft Excel 97 ja uuemad versioonid Exceli, kuvatakse üks järgmise tõrketeate:

Tõrketeade 1

Run-time error '1004':
'< Meetod name >' objekti '_Global' nurjus.

Tõrketeade 2

Rakenduse määratletud või objekti määratletud tõrge

Microsoft Excel 95, kuvatakse üks järgmistest tõrketeadetest:

Tõrketeade 1

Run-time error "-2147023174"
Ole-automatiseerimise tõrge

Tõrketeade 2

Run-time error "462":
Kaugserveri masin pole olemas või pole saadaval.

Põhjus

Visual Basic on loonud Exceli viite rida koodi, mis kutsub Exceli objekti, meetod või atribuut elemendi Exceli objektimuutuja ilma tõttu. Visual Basic ei avalda see programmi lõpuni. Eksinud viide sekkub automaatika kood kui kood käivitatakse rohkem kui üks kord.

Lahendus

Selle probleemi lahendamiseks muutke koodi nii, et iga kõne Exceli objekti, meetod või atribuut on kvalifitseeritud sobiv objektimuutuja.

Olek

Selline käitumine on ette nähtud.

Lisateabe saamiseks

Microsoft Exceli automatiseerimiseks luua objektimuutuja, mis viitab tavaliselt Exceli rakendusobjekt või Exceli töövihiku objekt. Muud objekti muutujaid saate Määrake töölehe, lahtrivahemiku või muud objektid Microsoft Exceli objekti mudel. Exceli objekti, meetod või atribuut koodi kirjutamisel peaks alati enne vastavat objektimuutuja kõnet. Kui te seda ei tee, loob Visual Basicu oma viite Exceli. See võib tekitada probleeme, kui automaatika koodi käivitamisel mitu korda. Pange tähele, et isegi siis, kui koodi rida algab objektimuutuja, kõne võib teha Exceli objekti, meetod või atribuut keset rida koodi, mis ei ole eelnevalt objekti muutuja.

Järgmised sammud näitavad selle probleemi ning kuidas probleemi lahendamist.

Sellise käitumise taasesilekutsumise juhised

  1. Alustada uue standardne EXE projekti Visual Basic. Form1 luuakse vaikimisi.

  2. Klõpsake menüüs Project klõpsake Viitedja kontrollige objekti teegi versiooni Excel, mida kavatsete automatiseerida.

  3. Koht CommandButton kontrolli Form1.

  4. Kopeerige järgmine kood näide Form1 kood akna.

          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. Menüüs Run nuppu Startvõi vajutage klahvi F5, käivitage programm.

  6. Klõpsake selle CommandButton kontrolli. Ilmneb tõrkeid. Siiski viidatakse Excel on loodud ja ei ole välja andnud.

  7. Klõpsake selle CommandButton kontrolli uuesti. Pange tähele, et kuvatakse üks jaotises "Tunnused" kirjeldatud tõrketeadetest.

    Märkus. Tõrketeade ilmneb, sest kood viitab lahter meetod ilma eelneva kõne ning
    xlSheet objektimuutuja.

  8. Projekti lõpetada ja muuta koodi järgmine rida:

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

    Muutke koodirea sarnanevad järgmine rida koodi.

    xlSheet.Range(xlSheet.Cells(1,1),xlSheet.Cells(10,2)).Value = "Hello"
  9. Käivitage programm uuesti. Pange tähele, et saate käivitada koodi mitu korda ilma tõrketeate.

Viited

Lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artiklite kuvamiseks järgmisi artiklinumbreid:

167223 Microsoft Office 97 automatiseerimine spikrifaili saadaval

189618 võidakse kuvada tõrketeade "Run-time error '-2147023174' (800706ba)" või "Run-time error"462"" Visual Basicu koodi, mis kasutab automatiseerimine juhtelemendi Wordi käivitamisel

Kas vajate veel abi?

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liitu Microsofti Insideri programmis osalejad

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×