2016-11-16 9 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 находится в строке я и столбца J, проверить, если столбец J в строке 7 содержит г. Но я не знаю, как это сделать. я мог бы исключить все столбцы, но это 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 is not Z

+0

это будет выглядеть только в строке 7, а не в каждой седьмой строке, например, в строке 14, 21, поэтому вам нужно добавить петлю к ней .... –

+0

@ShaiRado Я не думаю, что OP хочет выглядеть в каждой седьмой строке, нужно только посмотреть на строку 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 
Смежные вопросы