2011-03-07 76 views
0

我拥有填充工作表的宏,并将值复制到网格中。我想为单元格添加条件格式,这样当它们更新时,如果它们变得比前一列更大,它们变成红色,变小变成绿色,变成0,变成灰色。Excel 2010 VBA:设置前一列中的单元格引用单元格的颜色

我的问题是添加条件和引用单元格。

Set newCell = originalEstimateCell.Offset(0, 2 + i) 
newCell.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="XX" 
newCell.FormatConditions(1).Interior.Color = RGB(255, 0, 0) 

我的问题是什么取代XX来引用同一行中的前一列,即。如果我们在单元格C7中,我想引用单元格B7。

感谢

+0

您可能会发现[此问题](http://stackoverflow.com/questions/5194286/highlight-cells-in-a-row-where-the-value-of-a-particular-cell-is-不同于tha)有用。 – GSerg 2011-03-07 16:42:01

回答

2

试试这个

Sub test() 
    ActiveCell.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ 
         Formula1:="=" & ActiveCell.Offset(0, -1).Address() 
    ActiveCell.FormatConditions(1).Interior.Color = RGB(255, 0, 0)  
End Sub 

上面的代码表示当前单元格值应该大于Formula1的值,并且该公式本身是活动单元格之前一列的单元格的地址。如果你想要格式化其他单元格,相对于活动单元格,只需更改偏移方法的参数。

我希望它有帮助。

+0

感谢这解决了它。 – 2011-03-08 00:11:02

0

我的问题是什么代替XX指前一列在同一行,即英寸如果我们在单元格C7中,我想引用单元格C6。

C6将是以前到C7,而不是以前的专栏

尝试

=INDIRECT("C" & ROW()-1) 

从上一行中获得的价值

+0

请不要使用间接,除非你绝对必须。它使单元变得不稳定(在任何打开的工作簿中的任何单元格的每次更改时重新计算)。 – GSerg 2011-03-07 16:41:05

+0

对不起,我的意思是专栏,我纠正了主要帖子。另外,我在设计时不知道细胞是什么,因为我正在生成一个大网格。 – 2011-03-07 23:07:56