2016-11-16 122 views
0

我在Excel中有一个计划方案,使用VBA。在工作表中,我拥有所有的日子。我寻找代码并为单元格着色。但我想排除在文件中用'z'编码的周末。 我有现在这样:Excel VBA排除列

Dim CurCell As Object 
    For Each CurCell In ActiveWorkbook.ActiveSheet.Range("A7:G41, J7:NI41") 

     If UCase(CurCell.Value) = "V" Then 
      CurCell.Interior.Color = RGB(0, 204, 0)   ' V 
End If 

    Next 

但是,这适用于所有的细胞。 我想这样做:

if Not CurCell.Rows(7) = Z Then 

然后检查V.因此,如果CurCell是在第i行第j列,我检查,如果在第7行第j列中包含的Z。但我不知道该怎么做。 我可以排除所有列但有52列..

+0

你正在做的是着色细胞?你可以用条件格式来做到这一点:= AND(A $ 7 <>“Z”,A7 =“V”)'为什么这必须是VBA? – tigeravatar

+0

有几个人使用它,格式也被复制。有了Vba,它可能会更加傻傻。 – user408041

回答

0

我认为这是你在找什么:

If Not Cell(7, CurCell.Column).Value = "Z" Then 
    'Your code 
End If 

此语句应检查列7细胞和CurCell的列是不是Z

+0

这只会看第7行,而不是每第7行,像第14,21行,所以你需要添加一个循环.... –

+0

@ShaiRado我不认为OP想要看每7行,只需要看第7行。 – tigeravatar

+0

@tigeravatar在这种情况下,我用我的代码如下:) –

0

如果我正确地理解了你,你想排除所有周末行,并有“Z”,所以基本上你正在寻找每第7行。你可以使用类似下面的代码:

Option Explicit 

Sub TestEverySevenRow() 

Dim CurCell As Range 

For Each CurCell In ActiveWorkbook.ActiveSheet.Range("A7:G41, J7:NI41") 

    ' current row is divided by 7, therefore it's a weekend 
    If CurCell.Row Mod 7 = 0 Then 

     ' for debug purpose only 
     CurCell.Value = "Current Row divided by 7" 

     ' the rest of your code goes here 

    End If 

Next 

End Sub