Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

Simptome

La executarea de cod care utilizează automatizare control Microsoft Excel, poate apărea una dintre următoarele erori:

În Microsoft Excel 97 şi în versiunile ulterioare de Excel, primiți unul din următoarele mesaje de eroare:

Mesaj de eroare 1

Run-time error '1004':
'< Nume metoda >' metoda de obiect '_Global' nu a reușit

Mesaj de eroare 2

Eroare de aplicație definite sau definite de obiect

În Microsoft Excel 95, primiți unul dintre următoarele mesaje de eroare:

Mesaj de eroare 1

Run-time error '-2147023174'
OLE Automation eroare

Mesaj de eroare 2

Run-time error '462':
Mașină de server la distanță nu există sau nu este disponibilă.

Cauza

Visual Basic a stabilit o referință la Excel din cauza o linie de cod care apelează un obiect Excel, metoda sau proprietatea fără calificate element cu o variabilă de obiecte Excel. Visual Basic nu eliberează această referință până când se închide programul. Această referință rătăcitor intră în conflict cu codul de automatizare atunci când codul se execută mai multe ori.

Rezolvare

Pentru a rezolva această problemă, modificați codul, astfel încât fiecare apel către un obiect Excel, metoda sau proprietatea este calificat cu variabila de obiect corespunzător.

Stare

Acest comportament este proiectat.

Mai multe informații

Pentru a automatiza Microsoft Excel, stabiliți o variabilă obiect care, de obicei, se referă la obiectul aplicației Excel sau obiectul registru de lucru Excel. Alte variabile obiect apoi poate fi configurat să se referă la o foaie de lucru, o gamă sau alte obiecte în modelul de obiecte Microsoft Excel. Atunci când scrie codul de a utiliza un obiect Excel, metoda sau proprietatea, ce ar trebui să întotdeauna precede apelul cu variabila de obiect corespunzător. Dacă nu, Visual Basic stabilește propria referință în Excel. Această referință poate cauza probleme atunci când încercați să executați automatizare cod mai multe ori. Rețineți că, chiar dacă linia de cod începe cu variabila de obiect, un apel pot fi făcute pentru un obiect Excel, metoda sau proprietatea în mijlocul linie de cod care nu este precedată de o variabilă obiect.

Următorii pași ilustrează modul pentru reproducerea acestei probleme și a corecta problema.

Pași pentru a reproduce comportamentul

  1. Începe un nou proiect Standard EXE în Visual Basic. În mod implicit, se creează Form1.

  2. În meniul de proiect , faceți clic pe referințe, şi apoi verificaţi biblioteca de obiecte pentru versiunea de Excel pe care intenționați să automatizeze.

  3. Loc un control CommandButton Form1.

  4. Copiați următorul exemplu de cod pentru fereastra de cod de Form1.

          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. În meniul de Executare , faceți clic pe Start, sau apăsați F5 pentru a porni programul.

  6. Faceți clic pe controlul CommandButton . Eroare nu apare. Cu toate acestea, o referință la Excel s-a creat și nu a fost lansat.

  7. Faceți clic pe controlul CommandButton din nou. Observați că primiți unul dintre mesajele de eroare care sunt discutate în secţiunea "Simptome".

    Notă Mesajul de eroare se produce deoarece codul se referă la metoda de celula fără precedent apelul cu
    variabilă obiect xlSheet .

  8. Stop proiectul și modificați următoarea linie de cod:

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

    Modificați linia de cod pentru a se aseamănă cu următoarea linie de cod.

    xlSheet.Range(xlSheet.Cells(1,1),xlSheet.Cells(10,2)).Value = "Hello"
  9. Executați din nou programul. Observați că se poate executa cod mai multe ori fără a primi un mesaj de eroare.

Referințe

Pentru mai multe informații, faceți clic pe următoarele numere de articol pentru a vedea articolele în baza de cunoștințe Microsoft:

Fişierul 167223 ajutorul Microsoft Office 97 automatizare

189618 , este posibil să primiți mesajul de eroare "Run-time error '-2147023174' (800706ba)" sau "Run-time error '462'" când executați codul Visual Basic care utilizează automatizare control Word

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×