Vba 如何根据条件对单元格进行颜色编码
我在excel中有如下数据Vba 如何根据条件对单元格进行颜色编码,vba,excel,excel-2010,Vba,Excel,Excel 2010,我在excel中有如下数据 A B C D sam 9.8 sam 1 kev 0.1 kev 0.1 ashl 2 ashl 2 kris 5.5 kris 3 我尝试将代码B、D涂成颜色,如果为例如:A1=C1和B1=D1,则将颜色B1、D1涂成绿色或橙色。我尝试使用以下公式,根据E列中的“真”或“假”得到0或1。由于我的范围将动态变化,我如何在VBA中进行颜色编码 =IF(AND(A1=D1,B1=E1),0,1) 按
A B C D
sam 9.8 sam 1
kev 0.1 kev 0.1
ashl 2 ashl 2
kris 5.5 kris 3
我尝试将代码B、D涂成颜色,如果为例如:A1=C1和B1=D1,则将颜色B1、D1涂成绿色或橙色。我尝试使用以下公式,根据E列中的“真”或“假”得到0或1。由于我的范围将动态变化,我如何在VBA中进行颜色编码
=IF(AND(A1=D1,B1=E1),0,1)
按Alt+F11。这会将您带到希望放置VBA代码的位置。按Insert,然后插入模块。打开模块 键入以下内容:
Option Explicit 'not necessary but good practice to make sure you define all variables
Public Sub highlightCells()
Dim i As Long
Dim sht As Worksheet
Set sht = ThisWorkbook.Worksheets("Sheet1")
Dim lastrow As Long
'finds your last row, helps keep it dynamic
lastrow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
For i = 1 To lastrow
If (Cells(i, 1).Value = Cells(i, 3).Value) And (Cells(i, 2).Value = Cells(i, 4).Value) Then
Cells(i, 2).Interior.Color = RGB(178, 255, 102) 'green
Cells(i, 4).Interior.Color = RGB(178, 255, 102)
Else
Cells(i, 2).Interior.Color = RGB(255, 178, 102) 'orange
Cells(i, 4).Interior.Color = RGB(255, 178, 102)
End If
Next i
End Sub
然后,当光标位于“公共子对象”和“结束子对象”之间时,按F5。这将运行代码,因此您可以确保它是您正在寻找的。接下来,我将解释如何使它成为您工作表上的一个按钮
转到excel电子表格。在“开发人员”选项卡中,转到“插入”,在“活动X”下单击“命令”按钮。将CommandButton绘制到图纸上任何需要的位置。双击刚才绘制的按钮。在自动显示的代码中,键入
Module1.highlightCells
返回Excel工作表,在“开发人员”选项卡中,单击“设计模式”。这将启用/禁用设计模式,允许您使用现在应该可以工作的按钮
另外,请记住,我跳过了一些被认为是“良好实践”的事情,比如重命名对象等等。如果你也需要帮助,请告诉我。还有一件事,我选择了我们自己使用的绿色和橙色的类型,但如果您想更改它,可以使用此处的RGB(红色、绿色、蓝色)代码:按Alt+F11。这会将您带到希望放置VBA代码的位置。按Insert,然后插入模块。打开模块 键入以下内容:
Option Explicit 'not necessary but good practice to make sure you define all variables
Public Sub highlightCells()
Dim i As Long
Dim sht As Worksheet
Set sht = ThisWorkbook.Worksheets("Sheet1")
Dim lastrow As Long
'finds your last row, helps keep it dynamic
lastrow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
For i = 1 To lastrow
If (Cells(i, 1).Value = Cells(i, 3).Value) And (Cells(i, 2).Value = Cells(i, 4).Value) Then
Cells(i, 2).Interior.Color = RGB(178, 255, 102) 'green
Cells(i, 4).Interior.Color = RGB(178, 255, 102)
Else
Cells(i, 2).Interior.Color = RGB(255, 178, 102) 'orange
Cells(i, 4).Interior.Color = RGB(255, 178, 102)
End If
Next i
End Sub
然后,当光标位于“公共子对象”和“结束子对象”之间时,按F5。这将运行代码,因此您可以确保它是您正在寻找的。接下来,我将解释如何使它成为您工作表上的一个按钮
转到excel电子表格。在“开发人员”选项卡中,转到“插入”,在“活动X”下单击“命令”按钮。将CommandButton绘制到图纸上任何需要的位置。双击刚才绘制的按钮。在自动显示的代码中,键入
Module1.highlightCells
返回Excel工作表,在“开发人员”选项卡中,单击“设计模式”。这将启用/禁用设计模式,允许您使用现在应该可以工作的按钮
另外,请记住,我跳过了一些被认为是“良好实践”的事情,比如重命名对象等等。如果你也需要帮助,请告诉我。还有一件事,我选择了我们自己使用的绿色和橙色的类型,但是如果你想改变它,你可以使用这里的RGB(红色、绿色、蓝色)代码:你可以用普通条件公式本身来做。执行以下步骤
您可以使用普通条件公式本身执行此操作。执行以下步骤
也许您应该使用条件格式规则
=和($A1=$D1,$B1=$E1)
,将应用范围选择为A1:D*在此处插入数字*
@TimWilkinson我打算提出类似建议,但这是否适用于Excel 2010,因为OP在标记中列出了这一点?这说明此功能仅在Excel 2013/16中可用。@Clusks是的,它在2010年有效,在2007年也有效。从未拥有2003进行测试。@TimA1:D*在此处插入数字*
D范围将在此处动态更改。如何指定您应使用条件格式规则发布此内容的数字提示=和($A1=$D1,$B1=$E1)
,选择应用范围为A1:D*此处插入数字*
@TimWilkinson我打算提出类似建议,但这是否适用于Excel 2010,因为OP在标签中列出了这一点?这说明此功能仅在Excel 2013/16中可用。@Clusks是的,它在2010年有效,在2007年也有效。从未测试过。@TimA1:D*在此处插入数字*
D范围将在此处动态更改。如何指定该数字