【问题标题】:VBA-Change color of cells based on value in particular cellVBA-根据特定单元格中的值更改单元格的颜色
【发布时间】:2016-02-02 00:27:20
【问题描述】:

我想根据单元格D2 的值更改单元格A2:C2 的背景颜色。

这也适用于第 3、4 和 5 行中的相关单元格。

如果单元格D# 中的值为1,我想要颜色x。如果值为 2,我想要颜色 y,如果值为 3,我想要颜色 z。

如果有所不同,目标范围 (A2:D6) 将采用表格格式。

我希望在打开工作簿时执行此子例程。我知道把那个子程序放在哪里,所以不要费力地指导我如何。

我已经使用条件格式完成了这项工作,但如果有一些 VBA 我可以将它复制到未来的报告中,那就太好了。

【问题讨论】:

  • 条件格式会自动调整。为什么要使用 VBA,它必须一次又一次地运行并且效率会降低?条件格式也可以复制到其他文件中。
  • 学习一些语法会很有帮助。我相信有一天我可以把它变成更实用的东西。谢谢。
  • 到目前为止你尝试过什么?你在哪里停留在你的代码上?您想在本机复制粘贴之上编写什么代码?
  • @RikSportel 我不知道如何为for/each 语句创建数组/循环。谢谢。
  • @teylyn Array/loop 是我对如何最好地编写代码的预感,但这并不意味着它是最好的方法。我不想限制回答者的解决方案,所以我故意选择不具体。谢谢。

标签: vba excel


【解决方案1】:

您应该使用条件格式,但这有效:

Sub ColorMeElmo()
   Dim i As Long, r1 As Range, r2 As Range

   For i = 2 To 5
      Set r1 = Range("D" & i)
      Set r2 = Range("A" & i & ":C" & i)
      If r1.Value = 1 Then r2.Interior.Color = vbRed
      If r1.Value = 2 Then r2.Interior.Color = vbBlue
      If r1.Value = 3 Then r2.Interior.Color = vbYellow
   Next i
End Sub

【讨论】:

  • 正是我需要的。你太棒了,感谢 elmo 潜艇。
  • @Gary 的学生。我今天遇到了类似的问题,我花了一些时间通过使用条件来解决它。现在没关系,但这篇文章正是我在 40 分钟的工作中所做的。现在,类似的问题将需要 30 秒。也谢谢你,加里。
  • 条件格式可以为您提供 2 种颜色甚至 3 种颜色之间的范围。当您需要 4 个或更多时,您可以将单元格拆分为多个组,或者转向这样的代码。很高兴拥有。
猜你喜欢
  • 2019-05-18
  • 1970-01-01
  • 2013-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多