Avatar billede sije-1976 Nybegynder
25. oktober 2010 - 08:24 Der er 3 kommentarer og
1 løsning

Hjælp til Workbooks.close makro/vba i Excel

Hejsa
Jeg har lidt problemer med en makro, hvor jeg har en masse filer, som skal behandles forholdsvis ensartet.
Det er dog ikke nødvendigvis alle filer, som skal have de samme oplysninger. Derfor har jeg konstrueret en masterfil, som håndterer alle opdatering, hvor jeg så vil indlæses alle filerne efter specifikke grupperinger.
Ved hjælp af nogle simple formler er jeg i stand til at styre, hvilke filer der skal opdateres, det vil sige, at jeg har filnavnene i masterfilen.  Herefter kalder makroen filnavnene fra specifikke celler.
Den første del af makroen kører uden nogen problemer.
Workbooks.Open Filename:=Range("E1")
Hvor der står filsti, filnavn og filextension i E1.
Herefter en masse select, offset, sidste ledige celle etc, etc.

Så kommer problemet, når vil jeg gerne have have gemt ændringer og lukket filen,( hvorefter jeg vil lave en loop funktion, som går videre til næste filnavn).  Jeg kan få Workbooks("filnavn.filextension").close til at virke, hvis jeg skriver det med filnavnet, men når jeg vil have makroen til at hente filnavn (som kunne eksempelvis stå i E2) fra en celle, så standser funktionen.
Hjælp??
Avatar billede supertekst Ekspert
25. oktober 2010 - 08:54 #1
Prøv at vise koden her.
Avatar billede kabbak Professor
25. oktober 2010 - 17:56 #2
hvis du bruger Workbooks.Open Filename:=Range("E1")
til at åbne filen med, så bliver det den aktive Workbook, så gemmes og lukkes den med
ActiveWorkbook.Close True
Avatar billede kabbak Professor
25. oktober 2010 - 18:01 #3
hvis den skal gemmes under et andet navn, er det
ActiveWorkbook.SaveAs Range("A2")
ActiveWorkbook.Close False
Avatar billede sije-1976 Nybegynder
09. november 2010 - 13:14 #4
Jeg har selv fundet en løsning på sagen. Det var rent faktisk rent nemt. Selvom kabbaks ser også ud til at virke.

Dim Rng As Range
Dim WB As Workbook
For Each Rng In Range("F9:I9")  ' Ændres efter behov
  If Rng.Value <> "" Then
      Set WB = Workbooks.Open(ThisWorkbook.Path & "\" &
Rng.Value & ".xlsx") 'Ændres også efter behov
      ' Hvor efter man gør det, som skal gøres.
      WB.Close SaveChanges:=True
  End If
Next Rng
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