循环与多个约束
我目前有一个macros查找一个列表(下面的例子),目前只有当问题已经失败时才回拉评论。 看代码。 我需要做的是build立一个简单的方法来撤回评论,如果它是一个通行证,并有评论。 如果它没有评论通过它需要被忽略。
我有一些想法,但他们似乎过于复杂。
码;
For Each Cell In Sheets("Sharepoint Raw").Range("M2:M3000") If Cell.Value = mpan Then For Each x In Sheets("Sharepoint Raw").Range("O" & Cell.row & ":AG" & Cell.row & "") If x.Value = "Fail" Then copycount = copycount + 1 Sheets(1).Cells(copycount, 2) = Sheets("Sharepoint Raw").Cells(1, x.Column) Sheets(1).Cells(copycount, 4) = "Fail" Sheets(1).Cells(copycount, 5) = Sheets("Sharepoint Raw").Cells(x.row, x.Column + 1) Sheets(1).Cells(305, 16) = Sheets("Sharepoint Raw").Cells(x.row, 37) Else Sheets(1).Cells(305, 16) = Sheets("Sharepoint Raw").Cells(x.row, 37) End If Next x End If Next Cell
烤盘;
╔══════╦══════════════╦══════╦═══════════════╦══════╦═══════════════╦══════╦══════════════════╗ ║ Q1. ║ Q1. Comments ║ Q2. ║ Q2. Comments? ║ Q3. ║ Q3. Comments? ║ Q4. ║ Q4. Comments? ║ ╠══════╬══════════════╬══════╬═══════════════╬══════╬═══════════════╬══════╬══════════════════╣ ║ Fail ║ ║ Fail ║ ║ Pass ║ ║ Pass ║ ║ ║ N/A ║ ║ N/A ║ ║ Pass ║ ║ Pass ║ Example comment' ║ ║ Pass ║ ║ Fail ║ ║ Pass ║ ║ Pass ║ ║ ╚══════╩══════════════╩══════╩═══════════════╩══════╩═══════════════╩══════╩══════════════════╝
需要像(显然这不会工作,但有类似的东西)
If x.Value = "Pass" AND X+1.value IS NOT NULL Then
考虑下面的macros:
Option Explicit Sub Offset() Dim Cell As Range Set Cell = Range("D27") Debug.Print Cell.Address Debug.Print Cell.Offset(0, 1).Address Debug.Print Cell.Offset(5, -3).Address End Sub
它将以下内容输出到即时窗口:
$D$27 $E$27 $A$32
我已经将Cell
设置为任意单元格地址。 Debug.Print Cell.Address
根据您的预期输出$D$27
。
Cell.Offset(0, 1)
将1加到列号上,结果输出$E$27
。 这是你寻求的X+1
。
最后一个例子并不直接与您的要求相关,但是显示您也可以调整行号,并且允许负偏移。