【问题标题】:Excel VBA Exclude columnExcel VBA 排除列
【发布时间】:2016-11-16 23:50:54
【问题描述】:

我有一个带有 VBA 的 Excel 计划方案。在表中我有所有的日子。我寻找代码并为单元格着色。但我想排除文件中用“z”编码的周末。 我现在有这个:

  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 列..

【问题讨论】:

  • 你所做的只是给单元格着色?您可以使用条件格式来做到这一点=AND(A$7<>"Z",A7="V") 为什么这必须是 VBA?
  • 有几个人使用它,然后格式也会被复制。使用 Vba 可能会更简单一些。

标签: excel vba


【解决方案1】:

我想这就是你要找的东西:

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

这个语句应该检查第7行的单元格和CurCell的列不是Z

【讨论】:

  • 这只会查看第 7 行,而不是每 7 行,如第 14、21 行,因此您需要为其添加一个循环....
  • @ShaiRado 我不认为 OP 想要查看每 7 行,只需要查看第 7 行。
  • @tigeravatar 在这种情况下,我在下面的代码中走得太远了:)
【解决方案2】:

如果我对您的理解正确,您希望排除所有周末的行并带有“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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    相关资源
    最近更新 更多