克莱想知道是否有一种方法,当他选择一个特定的单元格时,Excel将自动使另一个单元格的内容变为粗体。例如,如果他选择单元格K5,则他希望单元格C5中的任何内容显示为粗体;当他离开单元格K5(转到另一个单元格)时,单元格C5应该恢复为原来的状态,但是选择K5之前使其变为粗体。

在提出解决方案时,您可能会认为可以使用条件格式将格式应用于单元格C5。从理论上讲,这应该很容易做到;您需要做的就是根据以下公式创建条件格式设置规则:

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

由于此处使用的CELL函数返回选择的任何单元的地址,因此无论何时选择单元K5,都将应用规则中的格式(在这种情况下,将单元设置为粗体)。但是,这种方法的问题在于它在实践中效果不佳。

原因是因为仅在重新计算工作表时才评估CELL函数。如果仅选择单元格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_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本提示(13178)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。