【发布时间】:2016-01-16 22:25:38
【问题描述】:
我在 VBA 中有以下 IF 语句,但语句的“删除”部分或 ElseIf 之前的位被完全忽略:
For i = 3 To (customerNum + 3)
If Sheets("Reports").Range("L" & i).Value = "A" Then
Sheets("Reports").Range("G" & i & ":M" & i).Select
Selection.Delete Shift:=xlUp
ElseIf Sheets("Reports").Range("L" & i).Value <> "A" Then
Sheets("Reports").Range("J" & i).Value = form1_1 & i & form1_2
Sheets("Reports").Range("J" & i).NumberFormat = "d-mmm-yy"
Sheets("Reports").Range("M" & i).Value = form2_1 & i & form2_2 & i
Sheets("Reports").Range("M" & i).NumberFormat = "_-[$£-809]* #,##0.00_-;-[$£-809]* #,##0.00_-;_-[$£-809]* ""-""??_-;_-@_-"
End If
Next i
其余的运行顺利。没有崩溃或错误。
有什么想法吗?
【问题讨论】:
-
“完全忽略”是什么意思?你能看到代码在调试模式下进入 If 块(Select + Delete 所在的位置)吗?
-
附言。你的是一个非常基本的“如果”块,如果单元格 L & i 的值等于“A”,则输入删除部分,或者输入其他部分。所以你的陈述“删除部分被完全忽略,其余部分运行顺利”让我觉得单元格“L&i”永远不等于A。
-
可能
Sheets("Reports").Range("G" & i & ":M" & i).Select行没有选择任何内容。 -
@MatteoNNZ 感谢您的输入,但这是我检查的第一件事。这不是问题,因为“A”确实出现在目标块中。
标签: excel loops if-statement vba