我正在尝试使现有的大型电子表格更易于各种最终用户阅读。我无法共享实际的电子表格,但已创建了此示例页面来显示我要执行的操作。
我想根据电子表格另一端该行中单元格的值和颜色来编辑A列中每个单元格的背景色。例如,如果C1:G1中的每个单元格的值= X或O并被涂成绿色,则将A1填充设置为绿色。
我觉得我缺少一条简单的关键信息,但是没有运气去寻找可能的信息。
我尝试了各种各样的条件格式,但相信这是不可能的,因为您不能将Interior.Color放入公式中。
我尝试了各种各样的vba,但都取得了不同程度的成功,但是还没有找到完全可行的方法。这是我使用过的一些资源:
VBA checking cell interior color
Finding cells with certain interior color
在这一点上,我的编码尝试非常混乱,我没有任何有意义的代码尝试可粘贴到这里。
答案 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列上色的验证。