Регулировка центра выделения с помощью значения ячейки (Microsoft Excel)
Джин любит использовать параметр «Центрирование по выделению» на вкладке «Выравнивание» диалогового окна «Формат ячеек» для центрирования информации по несоединенным ячейкам. Однако она задается вопросом, есть ли способ использовать содержимое одной ячейки, чтобы контролировать, в скольких ячейках происходит центрирование. Например, если у нее есть номер 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.