2017-10-16 115 views
2

我正在寻找只会对任何给定的用户选择行(cells A to P)中的某些单元格进行着色的代码,而不是整行,这也会使单元格着色没有数据,在我的桌子外面。Excel VBA仅对选定行中的某些单元格进行着色

用户需要每天查看列表并确定某一行是否应标记为绿色或橙色,以便后续跟进。

目前我使用这个:

Selection.EntireRow.Select 
    With Selection.Interior 
    .Color = 49407 

但是如前所述也我的数据范围之外的颜色的细胞,我只希望那些范围(A to P)内着色。

回答

1

建议您尝试从Selection望而却步,但如果你必须有它,然后使用类似下面的代码:

Dim Rng As Range 

Set Rng = Selection 

Range(Cells(Rng.Row, "A"), Cells(Rng.Row, "P")).Interior.Color = 49407 
+2

Upvoted,但它也建议远离隐式的'ActiveSheet'和'ActiveWorkbook'引用,如在不合格的'Range'和'C ells'调用;-) –

+0

@ShaiRado感谢您的建议,它的工作! – DKAbi

+0

@ShaiRado:你允许通过这个社区直接联系人吗?我还有其他问题,我认为你可以帮助我。 – DKAbi

2

您可以使用相交功能

Set RangeFixed= Range("A:P") 
Application.Intersect(Selection.EntireRow,RangeFixed).Select 
    With Selection.Interior 
     .Color = 49407 

基于this的答案

+1

不应该使用'Set'范围,如:'Set RangeFixed = Range(“A: P“)'? –

+0

@ShaiRado是的,它是固定的,我写了快速的答案 – WNG

相关问题