Клей хочет знать, есть ли способ, при котором при выборе определенной ячейки Excel автоматически выделяет содержимое другой ячейки жирным шрифтом. Например, если он выбирает ячейку K5, он хотел бы, чтобы все, что находится в ячейке C5, было выделено жирным шрифтом; когда он покидает ячейку K5 ​​(чтобы перейти в другую ячейку), тогда ячейка C5 должна вернуться в то состояние, в котором она была до того, как выбор K5 сделал ее жирной.

Придумывая решения, вы можете подумать, что можете использовать условное форматирование, чтобы применить форматирование к ячейке C5. Теоретически это должно быть легко сделать; все, что вам нужно сделать, это создать правило условного форматирования на основе следующей формулы:

=CELL("address")="$K$5"

Поскольку функция ЯЧЕЙКА, используемая здесь, возвращает адрес любой выбранной ячейки, то всякий раз, когда выбирается ячейка K5, применяется форматирование в правиле (в данном случае выделение ячейки жирным шрифтом). Однако проблема этого подхода в том, что он не работает на практике.

Причина в том, что функция ЯЧЕЙКА оценивается только при пересчете рабочего листа. Если вы просто выберете ячейку K5, то лист не будет пересчитан, поэтому формула не преобразуется в True, а условный формат не применяется. Единственный способ сделать это — выбрать ячейку K5, затем нажать F9, чтобы пересчитать лист, и тогда ячейка C5 будет отображаться жирным шрифтом.

Наилучший способ форматирования — использовать макрос, в частности, связанный с событием SelectionChange для рабочего листа. Это событие запускается каждый раз при изменении выбранной ячейки. Следующий макрос проверяет, выбрана ли ячейка K5. Если да, то ячейка C5 выделяется жирным шрифтом; в противном случае ячейка C5 не выделена жирным шрифтом.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If ActiveCell.Address(False, False) = "K5" Then         Range("C5").Font.Bold = True     Else         Range("C5").Font.Bold = False     End If   End Sub

Помните, что этот макрос добавляется в код листа, к которому он применяется — щелкните правой кнопкой мыши вкладку рабочего листа и выберите «Просмотреть код». Вот где должен быть размещен макрос. Поскольку макрос выполняется каждый раз, когда вы меняете то, что выбрано на листе, «жирный статус» ячейки C5 постоянно обновляется.

Обратите внимание, что макрос эффективно переключает свойство Bold ячейки.

Таким образом, если вы выберете ячейку, отличную от K5, все, что находится в ячейке C5, не будет выделено жирным шрифтом. Это, конечно, не применяется, если у вас есть какое-то другое правило условного форматирования, определенное для ячейки C5, из-за которого она будет отображаться жирным шрифтом. В этом случае условный формат имеет приоритет над всем, что может делать этот конкретный макрос.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

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

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