Я выбираю атрибут постоянный, а это требует записи ".GetConstantAttributes".
Но проверку
83. If elem.HasAttributes = True Then
84. att = elem.GetConstantAttributes
делаете на ВСЕ атрибуты... а если у Вас постоянных нет в блоке?
Но даже в непостоянных атрибутах данная запись выдает ошибку. С обычным текстом проходит. С атрибутом не проходит.
Непонятно, так на каком месте все-таки происходит ошибка? Какая "данная запись"? В куске где про ConstantAttributes, или там где про "непостоянные"?
Если вы считаете иначе, можете предложить корректировки в коде.
Я бы предложил убрать совсем кусок со строки 82. до 97., а строки 86, 87, 95 перенес бы в верхний цикл
Делать еще один цикл отдельно по постоянным атрибутам не вижу смысла, если уже есть первый.
А att(i).TagString = "ШИФР" сделать редактируемым, зачем он нужен постоянный?