Hoe activeer ik een excel-werkmap via vba?
Als u tegelijkertijd met meerdere werkmappen werkt, bedoel ik dat als u meerdere werkmappen tegelijkertijd geopend heeft, u de methode moet kennen die u kan helpen een werkmap te activeren waaraan u wilt werken.
Om een werkmap met VBA te activeren, moet u de Workbook.Activate-methode gebruiken. Bij deze methode moet u de werkmapnaam opgeven met behulp van het Workbook-object. U kunt hiermee ook het werkmapnummer gebruiken in plaats van de werkmapnaam, maar u kunt alleen naar geopende werkmappen verwijzen.
In deze tutorial bekijken we verschillende manieren om deze methode te gebruiken.
Stappen om een werkmap te activeren
- Typ ‘Binders’ om het binderobject te gebruiken.
- Geef de naam van de werkmap op tussen dubbele aanhalingstekens.
- Voer een punt (.) in om een lijst met eigenschappen en methoden te krijgen.
- Selecteer de activatiemethode uit de lijst of voer deze ook in.
- Voer aan het einde de code uit om de werkmap te activeren.
Sub vba_activate_workbook() Workbooks("Book3").Activate End Sub
Opmerking: als u een werkmap probeert te activeren die niet is geopend, geeft VBA een foutmelding weer.
Gerelateerd: Een spreadsheet activeren met VBA
Handige links: Een macro uitvoeren – Macrorecorder – Visual Basic Editor – Handboek voor persoonlijke macro’s
Activeer een werkmap met behulp van nummer
Wanneer u meerdere werkmappen geopend heeft, worden al deze werkmappen onderdeel van de werkmappencollectie en hebben ze een nummer waarnaar u kunt verwijzen. Vervolgens kunt u de activatiemethode ermee gebruiken. Hier is de code:
Sub vba_activate_workbook() Workbooks(2).Activate End Sub
En als u een werkmap probeert te activeren met een nummer dat niet bestaat, toont VBA u een runtimefout ‘9’ (Subscript buiten bereik).
Activeer deze werkmap
U kunt verwijzen naar de werkmap waarin u code schrijft met behulp van de eigenschap ThisWorkbook. Stel dat u vijf werkmappen tegelijk geopend heeft, maar u werkt aan “Book1.xlsm”, dus als u de volgende code uitvoert, wordt “Book1.xlsm” geactiveerd.
Sub vba_activate_workbook() ThisWorkbook.Activate End Sub
Controleer dit voordat u een werkmap activeert
Zoals ik al zei: wanneer u een werkmap probeert te activeren die niet geopend is, geeft VBA u een foutmelding. Om dit probleem op te lossen, is de beste manier om eerst de naam van de werkmap te controleren (of deze nu open is of niet) en deze vervolgens te activeren.
Sub vba_activate_workbook() Dim wb As Workbook For Each wb In Workbooks If wb.Name = "Book3.xlsx" Then wb.Activate MsgBox "Workbook found and activated" Exit Sub End If Next wb MsgBox "Not found" End Sub
Met behulp van de bovenstaande code kunt u een werkmapnaam opgeven. Deze controleert eerst of deze werkmap aanwezig is in alle geopende werkmappen. Als de werkmap wordt gevonden, wordt deze geactiveerd.
Opmerkingen
- Wanneer u de werkmapnaam gebruikt, zorg er dan voor dat u de juiste bestandsextensie gebruikt
- Als u een werkmap wilt activeren die nog niet is opgeslagen, moet u alleen de naam van die werkmap gebruiken, zonder de bestandsextensie achter te zetten.