基于行中其他单元格的值和内部颜色的单元格内部颜色格式

时间:2019-07-24 14:57:32

标签: excel vba conditional-formatting

我正在尝试使现有的大型电子表格更易于各种最终用户阅读。我无法共享实际的电子表格,但已创建了此示例页面来显示我要执行的操作。

https://ibb.co/VY3c8c8

我想根据电子表格另一端该行中单元格的值和颜色来编辑A列中每个单元格的背景色。例如,如果C1:G1中的每个单元格的值= X或O并被涂成绿色,则将A1填充设置为绿色。

我觉得我缺少一条简单的关键信息,但是没有运气去寻找可能的信息。

我尝试了各种各样的条件格式,但相信这是不可能的,因为您不能将Interior.Color放入公式中。

我尝试了各种各样的vba,但都取得了不同程度的成功,但是还没有找到完全可行的方法。这是我使用过的一些资源:

https://www.bluepecantraining.com/portfolio/excel-vba-macro-to-apply-conditional-formatting-based-on-value/

https://social.technet.microsoft.com/Forums/en-US/2fffa4d8-bbba-473b-9346-5fce8f0728a8/using-vba-to-change-a-cell-colour-based-on-the-information-in-a-different-cell-excel-2010?forum=excel

VBA checking cell interior color

Finding cells with certain interior color

在这一点上,我的编码尝试非常混乱,我没有任何有意义的代码尝试可粘贴到这里。

1 个答案:

答案 0 :(得分:0)

使用内部单元格颜色时,VBA中有两个选项。第一个Sub AddAppt() 'Adds a new appointment and reminder to the reminders collection Dim objApt As AppointmentItem Set objApt = Application.CreateItem(olAppointmentItem) objApt.ReminderSet = True objApt.Subject = "Tuesday's meeting" objApt.Save End Sub ,第二个.Interior.Color

现在重要的一点是要注意,如果要检查单元格是否为某种颜色,则需要一种统一的方法,以便所有用户使用完全相同的颜色。例如,在Excel中使用默认的深绿色选项。

颜色:Interior.ColorIndex在立即窗口中返回Debug.Print ActiveCell.Interior.Color。 ColorIndex:5287936在立即窗口中返回Debug.Print ActiveCell.Interior.ColorIndex

如果我们要使用此信息,则可以简单地编写一个if语句来读取:

14

同样,重申一下,您所使用的颜色必须统一,以便您通过VBA进行选择。另外,您现在编写了一个简单的双If Sheets("Sheet1").Range("C1").Interior.ColorIndex = 14 And Sheets("Sheet1").Range("C1").Text = "X" Then Sheets("Sheet1").Range("A1").Interior.ColorIndex = 14 End If 循环,以用颜色和文本完成您的任务,作为对A列上色的验证。