格式化基于其他单元格的excel单元格

时间:2016-01-29 09:36:42

标签: excel vba excel-vba

我有一个包含许多行和列的表。

我需要根据由三个单元格制作的范围来格式化列中的特定范围的单元格

例如,假设我在A1中有A值100,那么我有两个限制,我在单元格B1中有下限(-3),在C1中有上限(4)

然后我选择要更改颜色的单元格范围并应用“仅格式化包含的单元格”规则,首先我使用“between = B1 + C1和= B1 + C1” - 颜色为绿色然后“不介于= B1之间+ C1和= B1 + C1“ - 红色

当我想要复制到下面的行时出现问题,即使我没有阻止任何单元格,我也无法将格式复制到下面的行,我尝试了所有粘贴特殊选项,但值仍然与A1,B1和C1,它们不会改为A2,B2,C2等。

我有什么想法我做错了吗?

也许应该使用宏,我不知道VBA但是我可以管理指南。

谢谢。

编辑: 感谢您的代码,

我想编辑它所以我需要它从第3行开始,并且还要将C + E视为低值而C + D视为上限值,然后将颜色更改为范围G到V中的单元格

我尝试编辑代码,但我不知道怎么做,下面是我试图修改的内容 对于i = 3到Lastrow

If ws1.Cells(i, "G:V") >= ws1.Cells(i, "C" + "E") And ws1.Cells(i, "D:V") <= ws1.Cells(i, "C" + "D") Then
    ws1.Cells(i, "A").Interior.color = RGB(0, 255, 0) 'If Value in Column A is in betwen (color green)
Else
    ws1.Cells(i, "A").Interior.color = RGB(255, 0, 0) 'If Value in Column A is not in betwen (color red)
End If

1 个答案:

答案 0 :(得分:0)

您可以使用VBA执行此操作:

\setup\WinSDKTools

修改

Option Explicit
Sub test()

Dim ws1 As Worksheet
Dim Lastrow As Long
Dim i As Long

Set ws1 = ThisWorkbook.Sheets("Sheet1") 'Change the name of your sheet

Lastrow = ws1.Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To Lastrow

    If ws1.Cells(i, "A") > ws1.Cells(i, "B") And ws1.Cells(i, "A") < ws1.Cells(i, "C") Then
        ws1.Cells(i, "A").Interior.Color = RGB(0, 255, 0) 'If Value in Column A is in betwen (color green)
    Else
        ws1.Cells(i, "A").Interior.Color = RGB(255, 0, 0) 'If Value in Column A is not in betwen (color red)
    End If

Next i

End Sub