20. august 2001 - 10:57 Der er 11 kommentarer og
1 løsning

Excel 97: Openfile-dialogboks

Hej,

Hvordan får jeg adgang til OpenFile-dialogboksen fra VBA? Ligger den som indbygget funktion i Excel?

I Access har jeg en API-funktion, som gør det, men den virker ikke i Excel, da den benytter nogle parametre som er unikke for Access - og jeg har ikke de tilsvarende til Excel.

Jeg ønsker ikke at skulle benytte ActiveX-komponenter som Commondialog eller lignende .ocx\'er.

pfh tak
/Thomas
Avatar billede janvogt Praktikant
20. august 2001 - 11:12 #1
Det er ganske nemt og kræver ikke API. Følgende kode er tilstrækkelig:

Application.Dialogs(xlDialogOpen).Show
Avatar billede janvogt Praktikant
20. august 2001 - 11:15 #2
Så du har ret: Den ligger som en indbygget dialogboks i Excel.
20. august 2001 - 11:22 #3
Hey Jan,

What took You so long :o)

Så vidt jeg kan se (efter lige at have afprøvet den), så åbnes den valgte fil i Excel.
Det ønsker jeg ikke.
Jeg ønsker bare at få returneret stien til den valgte fil, således at jeg selv kan gøre med den hvad jeg vil. I dette tilfælde vil jeg importere den vha den geniale rutine du sendte mig sidst (http://www.eksperten.dk/spm/98077 :)

Forstår du hvad jeg mener?
Avatar billede janvogt Praktikant
20. august 2001 - 11:32 #4
Beklager den sene tilbagemeldingstid. Jeg sad i møde ;-)

Jeg tror jeg forstår, hvad du mener. Den var værre ..... jeg går i tænkeboks, men vender tilbage ....
Avatar billede janvogt Praktikant
20. august 2001 - 12:42 #5
Det var ikke så svært endda - prøv denne her:

Sub GetOpenFilename()
  fileToOpen = Application.GetOpenFilename(\"Tekst files (*.txt), *.txt\")
  If fileToOpen <> False Then
      MsgBox \"Open \" & fileToOpen
  End If
End Sub

Du kan også ændre andre ting, som f.eks. titel i dialogboksen, men se selv hjælpen under VBA.
Avatar billede janvogt Praktikant
20. august 2001 - 12:47 #6
Brug f.eks. denne her for at udskifte titlen med hvad, du nu måtte ønske:

fileToOpen = Application.GetOpenFilename(\"Excel filer (*.xl*),*.xl*\", 1, \"Valgfri dialog titel\", , False)
20. august 2001 - 12:50 #7
You\'re the MAN :O)))

Thnx again :o)
Avatar billede janvogt Praktikant
20. august 2001 - 13:00 #8
You\'re welcome!
20. august 2001 - 13:03 #9
Ét lille tillægsspørgsmål: Hvad gør den 2. parameter (Filterindex)?

/Thomas
Avatar billede janvogt Praktikant
20. august 2001 - 15:33 #10
Filterindex bruges til at angive, hvilket filter, som skal stå som default-værdi i søgningen. I ovenstående eksempel er det meget naturligt med \"1\", da der kun er angivet ét filter, men havde formlen set sådan ud:
fileToOpen = Application.GetOpenFilename(\"Text Files (*.txt),*.txt,Add-In Files (*.xla),*.xla\", 2, \"Valgfri dialog titel\", , False)

hvor man altså både søger efter tekstfiler og Excel add-in filer, så havde søgefeltet i dialogboksen indeholdt *.xla som default-værdi.

Ganske ubrugeligt, hvis du spørger mig ..... :-)
20. august 2001 - 15:39 #11
Jeg synes nu at det er ganske smart at man kan angive flere forskellige filter-typer. At man kan angive at det ikke lige er den første, som er default, kan være lidt sværere at se. Men forestil dig at du skal importere en komma-separeret fil, som har en underlig extension, så ville det jo være smart at systemet kunne huske hvilken filtype du brugte sidst - også selvom den ikke ligger øverst på listen.

Men tusind tak for hele svaret :o)
Nu skal jeg ikke forstyrre...før næste gang ;o)

/Thomas
Avatar billede janvogt Praktikant
20. august 2001 - 15:58 #12
Jeg elsker at blive forstyrret ;-)

Ja, det er ganske praktisk med flere forskellige filtertyper, men man kan jo bare sortere listen efter hvilken værdi, som skal vises først. Så behøver man ikke filterindex.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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