Start » VBA-exempel för Excel | Effektiva lösningar på konkreta problem » VBA-lösningar på allehanda problem » Låt användaren bestämma vilken Excelfil som öppnas

Låt användaren bestämma vilken Excelfil som öppnas





Det är vanligt att man skriver makron som importerar data från andra filer, och kanske framför allt från olika typer av textfiler som t ex csv- och ascii-filer.

När man programmerar i Excel VBA så är det viktigt att man redan från början försöker anpassa koden så att den blir mer dynamisk, dvs kan anpassas till nya situationer. Ett exempel på detta är en funktion som låter användaren välja vilken fil som skall öppnas. På det sättet undviker man att de filer som importeras dag efter dag måste ha samma namn.

Körningen av makrot öppnar dialogrutan “Open file” där användaren på sedvanligt sätt väljer vilken fil på datorn/nätverket som skall öppnas.

openfile

Exempel som öppnar dialogrutan “Open File”

Nedanstående kod gör precis detta. Dessutom tilldelar vi den öppnade filen ett variabelnamn, vilket möjliggör att senare hoppa mellan flera öppnade filer liksom att kunna automatisera stängningen av vissa filer när importen är klar. I detta exemplet öppnas filen utan kolumnuppdelning.

Sub OppnaFil()
 
'deklarera variabler
Dim strFil_1 As String
Dim strFil_2 As String
'hämtar in vilken fil som skall öppnas
strFil_1 = Application.GetOpenFilename
On Error GoTo 99
 
'öppnar filen
Workbooks.OpenText Filename:=strFil_1, _
Origin:=xlWindows, StartRow:=1, _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, _
Tab:=False, Comma:=False, Space:=False, Other:=False, _
FieldInfo:=Array(1, 1)
 
'tilldelar den öppnade filen ett variabelnamn
strFil_1 = ActiveWindow.Caption
 
99:
End Sub

På det här enkla sättet kan vi öppna en eller flera filer som vi sedan låter makrot importera för vidare behandling.

On Error GoTo 99 betyder att makrot hoppar till 99: om ett fel uppstår. Och det fel det kan handla om är att användaren trycker på “Cancel” i dialogrutan för “Open File”. En snygg detalj som gör att användaren slipper ett mindre snyggt felmeddelande om att VBA-koden har kraschat.

Hoppa mellan flera öppna filer

Om du via makrot har öppnat flera filer så kan du enkelt hoppa mellan dem på följande sätt (under förutsättning att du har tilldelat dem variabelnamn, se exemplet ovan).

'för att hoppa mellan öppna filer
Windows(strFil_1).Activate




En kommentar till “Låt användaren bestämma vilken Excelfil som öppnas”

  1. Johan

    Hej,
    Jag undrar om man kan styra makron till att hämta data från en sql server?
    -Tack för bra sajt.

Lämna en kommentar