Avatar billede kriskrisk Nybegynder
24. marts 2004 - 14:27 Der 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.

Hvad skal ændres?

Mvh.
Avatar billede martin_moth Mester
24. marts 2004 - 17:33 #1
"men når man senere åbner det gemte ark"

Hvordan åbner. Åbner ved at dobbeltklikke på xls-filen?
Åbner ved at åben excel og vælge fil->åbn?
Åbner i VB?
Avatar billede kriskrisk Nybegynder
24. marts 2004 - 23:39 #2
Nåh ja. Når man dobbeltklikker på xls-filen.

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.
Avatar billede kriskrisk Nybegynder
26. marts 2004 - 11:40 #3
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

END IF

Mvh. og tak
Avatar billede kriskrisk Nybegynder
26. marts 2004 - 15:53 #4
Ingen der ved, hvordan man kan få VB til at lukke en åben og ændret fil uden først at prompte for, om man vil gemme ændringerne?
Avatar billede martin_moth Mester
26. marts 2004 - 19:33 #5
JO, det står et sted på eksperten. Kan ikke lige huske hvor, og har ikke tid at lede nu
Avatar billede kriskrisk Nybegynder
29. marts 2004 - 14:30 #6
Jeg har prøvet dette: http://www.eksperten.dk/spm/335921 men kan ikke få det til at virke.
Avatar billede kriskrisk Nybegynder
30. marts 2004 - 08:59 #7
.
Avatar billede kriskrisk Nybegynder
30. marts 2004 - 09:00 #8
Lukker
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