ActiveWorkbook.Names.Count gibt die Anzahl aller Bereich an. Wenn keiner da ist, passiert nix.
InStr(1, ActiveWorkbook.Names(i).name,
"DetailBereich"
, vbTextCompare) prüft dann in jedem Bereich, ob DetailBereich vorkommt.
ActiveWorkbook.Names(i).name ist dabei der Namen in Textform
Wenn ja geht es inner weiter.
ActiveWorkbook.Names(i) gibt den Bereich mit der Range an. Sieht aus Tabelle1!A1:B2 bspw.
Mit split Trenne ich dann den Tabellennamen und die Range und spreche das dann beim select getrennt an.
An stelle select kannst du da auch was anderes reinmachen.
VG