我有两个sht,sht1作为BW和sht2作为结果。
我想计算列T中的1和Sht1的U的数量,根据AX列中的星期,并在结果表中打印计数值,查看同一周。
我接受了论坛专家的建议,并在此之前完成了。
我想要一个if条件,如果列AA为空,那么我不应该计算T列和U列中的1,它应该被跳过。
我在j = 2之后在现有代码中引入了这行代码;并收到错误
错误标签未定义`,
If ws.Range("AA" & i) = "" Then
GoTo nextrow
有人可以帮忙,我应该如何执行这个条件? 这是我的代码;
Sub results()
Dim i As Integer, j As Integer, cntT As Integer, cntu As Integer, ws As Worksheet
Set ws = Sheets("Result")
Sheets("BW").Select
For i = 2 To WorksheetFunction.CountA(ws.Columns(1))
cntT = 0
cntu = 0
If ws.Range("A" & i) = Val(Format(Now, "ww")) Then Exit For
Next i
For j = 2 To WorksheetFunction.CountA(Columns(50))
If ws.Range("A" & i) = Range("AX" & j) And Range("T" & j) = 1 Then cntT = cntT + 1
If ws.Range("A" & i) = Range("AX" & j) And Range("U" & j) = 1 Then cntu = cntu + 1
Next j
If cntT <> 0 Then ws.Range("B" & i) = cntT
If cntu <> 0 Then ws.Range("C" & i) = cntu
If cntT + cntu <> 0 Then
ws.Range("D" & i) = cntT + cntu
ws.Range("E" & i) = cntT / (cntT + cntu)
ws.Range("F" & i) = cntu / (cntT + cntu)
End If
ws.Range("E" & i & ":F" & i).NumberFormat = "0%"
End Sub
答案 0 :(得分:0)
GoTo nextrow
正在寻找标题为nextrow
的行标签。这就是GoTo命令的构建和运行方式。对于您要完成的任务,请尝试以下方法:
If ws.Range("AA" & i) <> "" Then
If ws.Range("A" & i) = Range("AX" & j) And Range("T" & j) = 1 Then cntT = cntT + 1
If ws.Range("A" & i) = Range("AX" & j) And Range("U" & j) = 1 Then cntu = cntu + 1
End If
这样说,如果列 NOT 为空,则为do stuff
,否则请转到next j
如果您希望将来使用GoTo命令,可以使用行号(例如GoTo 0
,它可以将您带回到代码的开头),或者您可以通过放置{{1来创建行标签在空行上。然后,当您致电nextrow:
时,它将转到该行,然后从那里继续。