20. august 1999 - 09:10Der 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 #########
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
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.
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.