Er bestaat geen standaard functie om te controleren of een bepaald werkblad bestaat in een Excel workbook. Met de onderstaande zelf geschreven functie kun je dit wel controleren. Als parameter geef je de naam van het werkblad mee. Het resultaat/antwoord krijg je dan terug in de vorm van een string ( “ja” of “nee”). Je kunt met deze functie ook een deel van van het werkblad meegeven. Als een werkblad deze tekst bevat dan zal het resultaat van de functie dus ook “ja” zijn.
Function WerkbladBestaat(Werkblad As String) As String
For Each sh In Sheets
If sh.Name Like Werkblad Then
WerkbladBestaat = "ja"
Exit For
Else
WerkbladBestaat = "nee"
End If
Next
End Function
Heeft dit artikel je geholpen?
Laat ons weten of dit artikel jou heeft geholpen. Op deze manier kunnen wij onze dienstverlening verbeteren.
Op zich een goede manier, echter worden er in mijn VBA Excel een duizend tal tabbladen aangemaakt, waarvan bij het aanmaken van de tabbladen iedere keer gecontroleerd moet worden of deze als voorkomt. Hierdoor wordt bovenstaande functie ook zeer traag. Zou hier een ander oplossing voor zijn?
Hoi Teun,
Ik heb even mijn hersens laten kraken voor je 😉 en ik heb een oplossing bedacht. Je zou ook een functie kunnen gebruiken waarin je probeert een tabblad met de te controleren naam probeert te activeren.
Hier zet je dan netjes error handling omheen. Gaat het activeren goed dan geeft de functie terug dat het tabblad bestaat. Ging het activeren fout dan vangt de error handling je code op en geeft hij terug dat het
tabblad niet bestaat.
Function WerkbladBestaat(Werkblad As String) As StringOn Error GoTo BladBestaatNiet
' Probeer het werkblad te activeren
Sheets(Werkblad).Activate
WerkbladBestaat = "ja"
Exit Function
BladBestaatNiet:
' Als een fout optreedt, bestaat het werkblad niet
WerkbladBestaat = "nee"
On Error GoTo 0 ' Reset error handling
End Function
Mvg,
Martin