Požymiai
Vykdant kodas, automatizavimo valdymo Microsoft Excel, vieną iš šių klaidų gali kilti:
"Microsoft Excel 97" ir naujesnėse versijose "Excel", galite gauti vieną iš šių klaidos pranešimų:
1 klaidos pranešimas
Vykdymo laiko klaida "1004":
Metodas "< metodo pavadinimas >" objekto "_Global" nepavyko
2 klaidos pranešimas
Taikomosios programos nustatytas arba objektas apibrėžtas klaida
Microsoft Excel 95, galite gauti vieną iš šių klaidos pranešimų:
1 klaidos pranešimas
Klaida vykdymo metu "-2147023174"
OLE automatizavimo klaidos
2 klaidos pranešimas
Klaida vykdymo metu "462":
Nuotolinio serverio kompiuterio nėra arba jis neprieinamas.
Priežastis
Visual Basic nustatyta nuoroda į "Excel", nes kodą, kad "Excel" objektui, metodą arba ypatybę be tinkamų elementas su "Excel" objekto kintamąjį eilutę. Visual Basic negali paleisti šią nuorodą iki programos pabaigos. Šis paklydęs trukdo automatizavimo kodą daugiau nei vieną kartą paleidus kodą.
Sprendimas
Norėdami išspręsti šią problemą, pakeisti kodą, todėl kiekvieną skambutį į "Excel" objekto, metodą arba ypatybę yra kvalifikuotas su atitinkamą objekto kintamąjį.
Būsena
Tai yra sisteminis apribojimas.
Daugiau informacijos
Automatizuoti Microsoft Excel, galite nustatyti objekto kintamąjį, paprastai reiškia programos "Excel" objekto arba objekto "Excel" darbaknygę. Tada kitų objekto kintamųjų galima nustatyti darbalapyje, diapazoną ar kiti objektai Microsoft Excel objekto modeliu. Kai rašote kodą, kad galėtumėte naudoti "Excel" objekto, metodą arba ypatybę, visada turėtumėte prieš pokalbį su atitinkamą objekto kintamąjį. Jei ne, Visual Basic nustato savo nuoroda į "Excel". Ši nuoroda gali sukelti problemų, kai bandote paleisti automatizavimo kodas kelis kartus. Dėmesį, kad net jei kodo eilutę prasideda objekto kintamąjį, skambučio gali Excel objektą, būdą, ar ypatybė kodą, kuris nėra objekto kintamąjį su žyma linija viduryje.
Šie veiksmai parodo, kaip atkurti šią problemą ir kaip spręsti šią problemą.
Veikimo atkūrimo veiksmai
-
Pradėti naujas standartas EXE projektas Visual Basic. Pagal numatytuosius parametrus sukuriama Form1.
-
Meniu projektas spustelėkite nuorodasir tada patikrinkite, ar objektų bibliotekos versija "Excel", kurį norite automatizuoti.
-
Vieta CommandButton kontrolės Form1.
-
Nukopijuokite kodo pavyzdyje kodas Form1 langą.
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 -
Vykdyti meniu, spustelėkite pradėti, arba paspauskite F5, kad paleistumėte programą.
-
Spustelėkite CommandButton . Nėra klaida. Tačiau, nuoroda į "Excel" buvo sukurta ir nebuvo išleistas.
-
Dar kartą spustelėkite CommandButton . Atkreipkite dėmesį, kad galite gauti vieną iš klaidų pranešimų, aprašytus skyriuje "Požymiai".
Pastaba. Parodomas klaidos pranešimas, nes kodas nurodo langelį būdą be prieš skambutį į
xlSheet objekto kintamąjį. -
Projekto sustabdyti ir pakeisti šią kodo eilutę:
xlSheet.Range(Cells(1,1),Cells(10,2)).Value = "Hello"
Pakeisti į kodo eilutę, panašūs į šią kodo eilutę.
xlSheet.Range(xlSheet.Cells(1,1),xlSheet.Cells(10,2)).Value = "Hello"
-
Paleiskite programą. Atkreipkite dėmesį, kad jūs galite paleisti kodą kelis kartus negaudami klaidos pranešimo.
Nuorodos
Norėdami gauti daugiau informacijos, spustelėkite šiuos straipsnių numerius ir perskaitykite „Microsoft“ žinių bazės straipsnius:
167223 Microsoft Office 97 automatizavimo žinyno failą
189618 galite gauti klaidos pranešimą "vykdyklės klaida '-2147023174' (800706ba)" arba "vykdyklės klaida '462'" vykdant Visual Basic kodą, kuris naudoja Word valdymo automatizavimas