Avatar billede nihao Nybegynder
20. august 1999 - 09:10 Der er 3 kommentarer og
1 løsning

Kan ikke 'lukke' Excel

jeg har et program i VB for Access, det opretter et Excelobject og flytter data fra Access til Excel. Men når jeg vil lukker excel objectet igen, forsvinder Excel ikke fra CTRL-ALT-DEL.

Jeg har mindsket programmet ned til følgende
######
Option Compare Database
Option Explicit
Sub Rehosting()
Dim ExcelObject As Excel.Application
Dim Excelworkbook As Excel.Workbook
Dim excelsheet As Excel.Worksheet
Set ExcelObject = CreateObject("Excel.Application")
Set Excelworkbook = ExcelObject.Workbooks.Add
Set excelsheet = ActiveSheet
Excelworkbook.SaveAs ("c:\temp\test.xls")
ExcelFillIn excelsheet
Excelworkbook.Save
ExcelObject.Quit
Set excelsheet = Nothing
Set Excelworkbook = Nothing
Set ExcelObject = Nothing
End Sub

Sub ExcelFillIn(sheet As Excel.Worksheet)
sheet.Cells(1, 1).Value = 123
End Sub
#########

Hvad er der galt ?
Avatar billede mickeymouse Nybegynder
27. august 1999 - 22:19 #1
Jeg kan ikke forstå at dit eksempel ikke virker, det kører fint på min maskine, dog med office 2000.

Men prøv evt. at indsætte denne for bedre debug mulighedder.

ExcelObject.Visible = True

KH


Mickey Mouse
Avatar billede mickeymouse Nybegynder
28. august 1999 - 02:04 #2
Haeeemm, da jeg ville lukke NT var der lige 3 Excel objekter åben, ikke at de var i applications, de var kun af finde i processes. Så anyway prøv disse 3 ændringer og se om det ikke virker bedre.

Change 1: Det ikke er sikkert Access kan finde en ActiveWorkBook der vel hører til objektet Excelworkbook.

Change 2: Hvis filen findes i forvejen spørger Excel om man vil overskrive, dette ses bare ikke da Excel er usynlig.

Change 3: Windows ryder så dårligt op at vi ikke kan hjælpe nok, måske virker det, måske ikke, men hvorfor tage nogen chancer #?>!

Option Compare Database
Option Explicit
Sub Rehosting()
Dim ExcelObject As Excel.Application
Dim Excelworkbook As Excel.Workbook
Dim excelsheet As Excel.Worksheet
Set ExcelObject = CreateObject("Excel.Application")
Set Excelworkbook = ExcelObject.Workbooks.Add
Set excelsheet = Excelworkbook.ActiveSheet  ' Change 1
Kill "c:\testa.xls"        ' Change 2
Excelworkbook.SaveAs "c:\testa.xls"
ExcelFillIn excelsheet
Excelworkbook.Save
Excelworkbook.Close        ' Change 3
ExcelObject.Quit
Set excelsheet = Nothing
Set Excelworkbook = Nothing
Set ExcelObject = Nothing
End Sub

Sub ExcelFillIn(sheet As Excel.Worksheet)
sheet.Cells(1, 1).Value = 123
End Sub

KH

Mickey Mouse
Avatar billede nihao Nybegynder
30. august 1999 - 08:46 #3
Change 3 hjælper ikke, men det er er 'hintet' i change 1 som gør forskellen. Jeg er ny i VB programmering, så jeg havde glemt at refere til mine egne objekter forskellige steder - jeg fik masser af Automation error (Run time 440), og det gør at Excel ikke bliver lukket ned ordentligt.
Avatar billede mgade Nybegynder
23. marts 2000 - 12:28 #4
Er der ikke en af jer der kunne tænke sig at se dette spørgsmål:

http://www.eksperten.dk/spm.asp?id=13866

Det er ret tæt på spørgsmålet i denne tråd.
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