Hallo,
Het is toch altijd best om de variabelen te declareren.
bijvoorbeeld
Dim ws As Object
even wat pseudocode ter verklaring
Dim str Als Struik
'PlantenVanDitBos bevat bomen, struiken, gras, mos, ...)
Voor Elke str In PlantenVanDitBos
str.Snoei
Volgende str
Aangezien je in het begin zegt dat elke "str" een struik is, kan je achteraf de andere planten niet meer correct behandelen.
terug naar de oorspronkelijke code:
Met deze declaratie
Dim ws As Worksheet
zet je de deur open voor problemen, als je alle sheets wil behandelen.
sheets = allerlei soorten sheets en niet allen worksheets
For Each ws In ThisWorkbook.Sheets
Het volgende past correct bij de declaratie als "work"sheet, maar is niet wat je nodig hebt, want je wil
alle bladen beveiligen.
For Each ws In ThisWorkbook.Worksheets
Nog een heel ander voorbeeld van "type" mismatch, wat misschien wat verheldering kan brengen over de betekenis "typen komen niet overeen".
Dim b As Long
b = 2 + "a"
2 appelen + 1 citroen = .....
KABOEM !!!!!
(deze laatste uitdrukking staat voor: "je code bugt" )beste groeten,
Erik