Джин любит использовать параметр «Центрирование по выделению» на вкладке «Выравнивание» диалогового окна «Формат ячеек» для центрирования информации по несоединенным ячейкам. Однако она задается вопросом, есть ли способ использовать содержимое одной ячейки, чтобы контролировать, в скольких ячейках происходит центрирование. Например, если у нее есть номер 4 в ячейке A1, то центрирование будет по 4 ячейкам (B1: E1), но если она изменит его на 5, то центрирование будет по 5 ячейкам (B1: F1).

Единственный способ сделать это — использовать макрос. Поскольку вы можете изменить значение в ячейке A1, макрос необходимо запускать каждый раз, когда вы вносите изменения в книгу, а затем определять, было ли это изменение внесено в ячейку A1 или нет. Если да, то он может внести изменения в ячейки в строке.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim sWidth As String     Dim sStartCell As String     Dim iWidth As Integer     Dim r As Range     Dim sTemp As String

sWidth = "$A$1"

sStartCell = "$B$1"



If Target.Address = sWidth Then         iWidth = Range(sWidth).Value         If iWidth > 1 Then             sTemp = Right(sStartCell, 1)

sTemp = sTemp & ":" & sTemp             Range(sTemp).HorizontalAlignment = xlGeneral

Set r = Range(sStartCell)

Set r = r.Resize(1, iWidth)

r.HorizontalAlignment = xlCenterAcrossSelection         End If     End If End Sub

Обратите внимание, что этот макрос помещается в кодовую таблицу для рабочего листа, на который вы хотите повлиять. Каждый раз, когда в лист вносятся изменения, макрос запускается автоматически. Чтобы он работал на вас, вам следует изменить адреса, присвоенные переменным sWidth и sStartCell. sWidth устанавливается в ячейку, которая содержит, сколько столбцов вы хотите центрировать. sStartCell устанавливается в первую ячейку слева от диапазона, в котором должно происходить центрирование.

Макрос захватывает все, что находится в вашей ячейке sWidth, и помещает это в переменную iWidth. Если это значение больше 1, то происходит центрирование. (Нет смысла центрировать выделенный фрагмент шириной менее 2 столбцов.) Выравнивание всех ячеек — строка возвращается к общему значению, а затем определяется диапазон такой же ширины, как вы указали, начиная с в ячейке в sStartCell. Для этого диапазона установлено значение xlCenterAcrossSelection для выравнивания, чтобы получить желаемые результаты.

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (4360) применим к Microsoft Excel 2007, 2010, 2013 и 2016.