вы хотите что-то вроде:
range(columns(j),columns(j+k)).entirecolumn.hidden=true
range(columns(y),columns(y+z)).entirecolumn.hidden=false
но вам нужна логика, чтобы определить, что j ... первый сценарий - это то, где ничего не скрыто:
if not columns(9).entirecolumn.hidden and not columns(13).entirecolumn.hidden and not columns(17).entirecolumn.hidden and not columns(21).entirecolumn.hidden then
Тогда вам захочется спрятать такое, что:
j = 13
k = 15
Если этот сценарий не соответствует действительности (ELSE), у вас должна быть встроенная логика, чтобы определить, что скрыто, и показать другие разделы:
if not columns(9).entirecolumn.hidden then
j = 9
k = 3
y = 13
z = 3
Для каждой из групп столбцов вам понадобится указанная выше информация, что не является скрытым, чтобы вы знали, какая группировка будет следующей.
Вы бы перечислили, какие разделы будут видны и какие разделы будут скрыты, основываясь на номерах столбцов.