24. marts 2004 - 14:27Der er
7 kommentarer og 1 løsning
Åbner tomt ark sammen med fil.
Jeg gemmer Excel-filer med følgende kode, som jeg tidligere har fundet her på siden et sted:
Dim mXL, mWB, mWS, sti
Set mXL = CreateObject("Excel.Application") Set mWB = mXL.Workbooks.Add Set mWS = mWB.Sheets.Add
mWS.Range("A1).Value = "test"
mWB.SaveAs sti
mWB.Close Set mWS = Nothing Set mWB = Nothing Set mXL = Nothing
Den gemmer fint nok, men når man senere åbner det gemte ark, åbnes også et tomt Excel ark, så man således har den gemte fil, og et Excel-ark ved navn book1.
Når jeg - i VB - prøver at gemme oveni en anden xls-fil og svarer nej til at overskrive, spørger den bagefter om jeg så vil gemme book1.xls. Jeg tror derfor først den åbner et tomt ark, sætter data ind i et nyt og gemmer eller noget andet mærkeligt.
Jeg ser nu, at det ikke kun er de Excel-ark jeg har gemt i VB, der opfører sig sådan. Problemet må derfor være en opsætning et eller andet sted, så glem det.
Problem nr. 2 lever dog endnu - altså at jeg bliver spurgt, om jeg vil gemme book1.xls når jeg svarer nej til at overskrive en eksisterende fil. Jeg har nogenlunde tænkt mig til, at problemet må skyldes følgende:
----
Set mXL = CreateObject("Excel.Application") Set mWB = mXL.Workbooks.Add Set mWS = mWB.Sheets.Add
Der åbnes et tomt excel-ark der jo som default får navnet book1.xls
---
mWS.Range("A1).Value = "test"
Der indsættes noget i arket
----
mWB.SaveAs sti
Der forsøges at gemme, men der svares nej til at overskrive eksisterende fil
----
mWB.Close
Det åbne ark lukkes, og da det ikke er blevet gemt, bliver man selvfølgelig spurgt, om man vil gemme book1.xls
---
Jeg skal altså bruge en stump kode, der beder Windows/Excel om ikke at spørge mig, om jeg vil gemme ændringerne i arket, men i stedet vende tilbage til commondialog.save
Altså:
IF (Der svares nej til at gemme oveni den eksisterende fil) THEN
Lade være med at spørge, om book.xls skal gemmes
Commondialog.save
ELSE
mWB.SaveAs sti
mWB.Close Set mWS = Nothing Set mWB = Nothing Set mXL = Nothing
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.