2014-01-15 3 views
1

Я заинтересован в создании макроса форматирования ячейки Excel, который позволяет мне просматривать различные параметры (разные цвета шрифта/ячейки, разные типы границ и т. Д.). Я знаю, что могу это сделать, проверяя условия - если я меняю цвета шрифта, тогда я могу просто «прокручивать» с помощью условной логики (если цвет1, а затем изменить на color2, если color2, а затем изменить на цвет 3 и т. Д.). .). Мне было интересно, может ли быть более элегантный способ сделать это - в частности, есть ли способ хранения пользовательских атрибутов для ячеек в VBA?Пользовательские атрибуты/свойства для ячеек в excel?

Например, если я установил ячейку B3 в определенный стиль границы (тонкая линия для верхней, левой, правой, но двойной строки для нижней), существует ли способ создать и установить атрибут VBA для Cell.CustomBorderStyle = 1 ? В противном случае, я считаю, мне нужно было бы построить логику в свой макрос для точного форматирования (если верхний, левый, правый = тонкий и нижний = двойной, а затем переход к второму стилю и т. Д.). Я не уверен, что создание пользовательского класса в VBA позволило бы мне это сделать, или если вообще есть что делать.

Пожалуйста, дайте мне знать, если мой вопрос непонятен - спасибо!

+0

Должны ли ваши нотации проходить через сеансы? Если «Да», вы можете рассмотреть возможность сохранения информации о стиле в скрытом листе (например, с помощью адреса ячейки). Однако, если пользователь, например, добавляет или удаляет строку/столбец, то это собирается сбросить ваше сопоставление. Еще один вариант - сохранить информацию в комментарии ячейки и скрыть комментарии. –

ответ

1

Если вы хотите, чтобы атрибут ячейки был доступен в этом сеансе VBA, я бы использовал коллекцию или словарь с ключом адреса ячейки (Sheet_Row_Column) для хранения атрибутов.

Если вы хотите сохранить эту информацию в книге Excel, то, вероятно, лучше всего использовать ее с помощью пользовательского xml.

Смежные вопросы