【问题标题】:Formatting an adjacent cell based on the content of another cell根据另一个单元格的内容格式化相邻单元格
【发布时间】:2016-02-05 07:37:46
【问题描述】:

我相信这可能是一个简单的宏;条件格式似乎不可能,而且我对宏的经验有限。

我在 Excel 工作簿中有很多行。我想说的是:

如果我在当前选定的单元格中放置< 符号,则紧靠右侧的单元格应格式化为粗体,否则不应加粗。

我用不同的“IF”语句愚弄了,但我认为我离题了。

我到底是怎么做到的?

编辑

这可能是一种更好的方式来展示这一点,因为由于某种原因我仍然无法让它工作;我已经附上了屏幕截图。

(其实我意识到我问的问题是倒过来的……应该是如果有一个带有“不大胆)。

无论如何,为了举例,让我们关注第 12 行。最好有一个公式应用于整行,上面写着“查看单元格 C12。如果其中没有任何内容,则 D12 加粗。查看单元格 E12,如果其中没有任何内容,则 F12 应该加粗等。看看Q12单元格。如果它有一个“

【问题讨论】:

  • 条件格式化有效。假设当 D1 为“=D1="<" 的条件格式中使用以下公式
  • 我可以将此公式扩展到多个单元格吗?
  • 当然,在管理规则中,您将使用所需的单元格填写“适用于:”区域。如果您使最上面的一项正确,它将自动对引用进行更改,例如自动填充。因此,如果您不想更改某些内容,请在前面加上“$”。
  • 在设置范围的条件格式之前,如果需要,可以复制一个范围。然后在您的公式规则中,引用所选范围的活动单元格。

标签: excel excel-formula conditional-formatting vba


【解决方案1】:

使用 CF,选择要应用格式的单元格范围 - 说列 B:M(不是 A,因为它没有“立即到 left”) - HOME > 样式 - 条件格式,新规则...,使用公式确定要格式化的单元格在此公式为真的情况下格式化值:

=A1="<"

格式...,选择粗体,确定,确定。

编辑“那些不需要胆子”我认为你不介意他们是否是。这可能允许您加粗整个工作表(或者更确切地说是 ColumnsC:X)并应用单个 条件 格式。然而,这会导致&lt; 自己变得更加胆大妄为,我认为您不希望这样做。因此,如果要根据两个单独的条件应用格式化,则需要两个单独的规则。选择 D:X 列和 *bold**:

=C1=""  

对于Regular,具有相同的范围选择:

=C1="<" 

【讨论】:

  • 我已经更新了这个问题,让它更清楚一点。
  • 非常感谢您的帮助。谢谢!!
【解决方案2】:

你是对的,这是一个简单的宏。 @Scott Craner 也是正确的;条件格式将起作用。但是,有时您已经有很多条件格式并且添加另一个规则变得有点棘手,所以这里是宏。将其放入 ThisWorkbook 部分。

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Value = "<" Then
        Sh.Cells(Target.Row, Target.Column + 1).Font.Bold = True
    End If
End Sub

如您所见,您可以通过检查已更改单元格的值来制定自己的小格式规则。

要了解更多信息,请搜索“学习 Excel”。资源丰富。

【讨论】:

  • 感谢您的帮助...似乎每个人都有不同的方式来执行宏。例如,括号中的参数是什么(ByVal Sh As Object,ByVal Target As Range)?
  • 这些是Workbook_SheetChange 事件所需的标准变量。当您在 IDE 下拉列表中选择该事件时,Excel 会自动添加它们。Sh 是正在更改的工作表,Target 是正在更改的范围。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多