Выравнивание Activecell - PullRequest
0 голосов
/ 05 мая 2020

Я хочу выровнять по левому краю выделения. У меня есть столбец с заголовком. Выбор начинается под заголовком.

У меня что-то вроде:

range("C6", range("C6").end(xldown)).select
activecell.horizontalAlignment = xlleft

выбор работает, но я не знаю, почему выравнивание не работает. Пожалуйста, помогите.

Спасибо.

1 Ответ

0 голосов
/ 05 мая 2020

Есть разница между Selection и Activecell. Activecell всегда только одна ячейка - ячейка, которая имеет фокус. С помощью оператора выбора вы меняете Activecell на первую ячейку выделения - в вашем случае C6. Ваш оператор выравнивания просто устанавливает выравнивание этой ячейки.

Вы можете изменить свой код на selection.horizontalAlignment = xlleft. Однако прежде чем вы это сделаете, вы должны понять, что в VBA нет необходимости выбирать что-либо, и вам следует избегать этого по многим причинам. Прочтите Как избежать использования Select в Excel VBA

Вы можете написать

range("C6", range("C6").end(xldown)).horizontalAlignment = xlleft

Мне все равно это не нравится, потому что предполагается, что лист вы работа с активна (что тоже не обязательно), но это приводит к тому, что этот ответ слишком далеко объясняет все детали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...