We weten al hoe we een Excel-bestand in VBA moeten openen of opslaan. We gebruiken gewoon de Open en SaveAs-methode van Workbook-object. Maar dat vereist harde codering van het pad van het bestand. Maar meestal wilt u dat de eindgebruiker een bestand selecteert met behulp van de GUI of Bestand openen of Opslaan als dialoogvenster zegt waarmee de gebruiker de locatie van het bestand visueel en gemakkelijk kan kiezen.
In dit artikel behandelen we de code die wordt gebruikt voor het weergeven van het dialoogvenster Werkmap openen en opslaan als dialoogvenster.
Ik heb een werkmap bijgevoegd die u kunt downloaden. Werkmap bijgevoegd bij dit artikel bevat drie macro's
VBA-code om bestand te openen met behulp van dialoogvenster Bestand openen
In deze code gebruiken we de GetOpenFilename-methode van Application. De syntaxis van de methode GetOpenFilename is:
Application.GetOpenFilename([FileFilter],[FilterIndex],[Title],[ButtonText],[MultiSelect])
[Bestandsfilter]: U kunt definiëren om slechts één soort bestand in de geselecteerde map weer te geven. Als u "Excel-Files, *.xlsx, *.xls, *.xlsm" etc. schrijft, worden alleen Excel-bestanden weergegeven uit de map in het dialoogvenster Bestand openen.
[FilterIndex]:Het is het aantal bestandsfilters dat u wilt gebruiken.
[Titel]: De titel van het dialoogvenster.
[Knop tekst]:Voor het specificeren van de knoptekst. Niet belangrijk.
[Meerkeuze selectie]: Het is een Booleaanse variabele. Als u True of 1 instelt, kunt u meer dan één bestand selecteren. Als u het op false instelt, kunt u slechts één bestand selecteren.
Genoeg van de theorie. Laten we wat spreuken doen.
VBA-code om één bestand tegelijk te openen
Optie Explicit Sub OpenOneFile() Dim FileName As Variant 'Het dialoogvenster voor het openen van het bestand weergeven FileName = Application.GetOpenFilename("Excel-files,*.xls", _ 1, "Select One File To Open", , False) 'Gebruiker heeft 't select a file If TypeName(FileName) = "Boolean" Then Exit Sub 'Open the workbook Workbooks.Open FileName End Sub
Hoe werkt het?
Wanneer u dit codesegment uitvoert, wordt met de methode GetOpenFilename voor het toepassingsobject een dialoogvenster Bestand openen geopend. De titel van het dialoogvenster is "Selecteer één bestand om te openen", zoals we in de code hebben gedefinieerd. Als u een bestand selecteert, wordt de Worbook.Open-code uitgevoerd en wordt het bestand geopend. Als u geen bestand selecteert, wordt de sub afgesloten zonder de Workbook.Open-code uit te voeren.
VBA-code om een of meer bestanden tegelijk te openen
Dit codesegment opent het dialoogvenster Bestand openen, maar u kunt meer dan één bestand tegelijk selecteren.
Sub OpenMultipleFiles() Dim FileName As Variant, f As Integer 'Het dialoogvenster voor het openen van het bestand weergeven FileName = Application.GetOpenFilename("Excel-files,*.xlsx", _ 1, "Selecteer een of meer bestanden om te openen", , True ) 'Gebruiker heeft geen bestand geselecteerd If TypeName(FileName) = "Boolean" Then Exit Sub 'Open alle werkmappen die door de gebruiker zijn geselecteerd For f = 1 To UBound(FileName) Workbooks.Open FileName(f) Next f End Sub
Merk op dat we hier de variabele multiselect hebben ingesteld op True. Dit zal de meervoudige selectie van het bestand mogelijk maken.
VBA-code om te openen Opslaan als dialoogvenster
Om een dialoogvenster Opslaan als te openen, gebruiken we de methode GetSaveAsFilename van het toepassingsobject. Syntaxis van de methode is:
Application.GetSaveAsFilename([InitialFileName],[FileFilter],[FilterIndex],[Title],[ButtonText])
[InitialFileName]:De oorspronkelijke bestandsnaam. Als u het bestand niet hernoemt terwijl u het opslaat, wordt uw bestand met deze naam opgeslagen.
[Bestandsfilter]: U kunt definiëren om slechts één soort bestand in de geselecteerde map weer te geven. Als u "Excel-Files, *.xlsx, *.xls, *.xlsm" etc. schrijft, worden alleen Excel-bestanden weergegeven uit de map in het dialoogvenster Bestand openen.
[FilterIndex]: De filterindex van het bestand.
[Titel]:De titel van het dialoogvenster.
[Knop tekst]:Dit wordt gebruikt in het Mac-systeem om de naam van de knop te wijzigen.
Volg hieronder voor de code:
Sub SaveFile() Dim FileName As Variant 'Het saveas-dialoogvenster weergeven FileName = Application.GetSaveAsFilename("MyFileName.xls", _ "Excel files,*.xls", 1, "Select your folder and filename") 'User did' t sla een bestand op If TypeName(FileName) = "Boolean" Then Exit Sub 'Save the workbook ActiveWorkbook.SaveAs FileName End Sub
SaveFile Macro gebruikt de GetSaveAsFilename-methode van het toepassingsobject om het dialoogvenster Opslaan als te openen, de bestandsnaam toe te wijzen en de locatie voor het opslaan van de werkmap te selecteren.
Dus ja jongens, dit is hoe je het dialoogvenster kunt gebruiken om bestanden te openen en op te slaan met VBA. Ik hoop dat het nuttig was. Als je twijfels hebt over dit artikel of een ander VBA-onderwerp, vraag het dan in de comments hieronder.
Gebruik een gesloten werkmap als database (DAO) met VBA in Microsoft Excel | Gebruik dit VBA-fragment in Excel om een gesloten werkmap als database met DAO-verbinding te gebruiken.
Gebruik een gesloten werkmap als database (ADO) met VBA in Microsoft Excel | Gebruik dit VBA-fragment in Excel om een gesloten werkmap als database met ADO-verbinding te gebruiken.
Aan de slag met Excel VBA UserForms | Om gegevens in de database in te voegen, gebruiken we formulieren. De Excel UserForms zijn handig om informatie van de gebruiker te krijgen. Hier leest u hoe u moet beginnen met VBA-gebruikersformulieren.
Verander de waarde/inhoud van verschillende UserForm-controls met VBA in Excel | Gebruik dit eenvoudige VBA-fragment om de inhoud van de bedieningselementen van het gebruikersformulier te wijzigen.
Voorkom dat een gebruikersformulier wordt gesloten wanneer de gebruiker op de x-knop klikt door VBA in Excel te gebruiken | Om te voorkomen dat het gebruikersformulier wordt gesloten wanneer de gebruiker op de x-knop van het formulier klikt, gebruiken we de gebeurtenis UserForm_QueryClose.
Populaire artikels:
50 Excel-snelkoppelingen om uw productiviteit te verhogen | Word sneller in uw taak. Met deze 50 sneltoetsen werk je nog sneller in Excel.
De VERT.ZOEKEN-functie in Excel | Dit is een van de meest gebruikte en populaire functies van Excel die wordt gebruikt om waarde op te zoeken uit verschillende bereiken en bladen.
AANTAL.ALS in Excel 2016 | Tel waarden met voorwaarden met behulp van deze geweldige functie. U hoeft uw gegevens niet te filteren om een specifieke waarde te tellen. Countif-functie is essentieel om uw dashboard voor te bereiden.
Hoe de SUMIF-functie in Excel te gebruiken? | Dit is een andere essentiële functie van het dashboard. Dit helpt u bij het optellen van waarden onder specifieke voorwaarden