我可以获得vbYesNo MsgBox语法的帮助吗? 我现在有这个,
For i = 1 To 10
If Not (cells(i,1).value = "0" OR cells(i,1).value = "30") Then
Range(cells(i, 1), cells(i, 1).End(xlToRight)).Select
ans = MsgBox("Do you want to delete this row?", vbYesNo)
If ans = vbYes Then
'I do something
Else
'I want to exit this the If and continue on the For loop
Exit If
End If
End If
Next i
我试过End If和Exit If但是没有用。我可以得到一些帮助吗?
答案 0 :(得分:2)
For i = 1 To 10
If ans = vbYes Then
'Do whatever
End If
Next i
如果您遗漏了Else
,如果If
条款未得到满足,则只会重新开始。
编辑: 删除循环中的行时,应始终反向循环。我做了几个其他的调整。见下文:
For i = 10 To 1 Step -1
If Not (cells(i,1).value = "0" OR cells(i,1).value = "30") Then
ans = MsgBox("Do you want to delete row " & Left(cells(i,1).Address(False,False),1) & "?", vbYesNo)
If ans = vbYes Then
Cells(i,1).EntireRow.Delete
End If
End If
Next i
答案 1 :(得分:0)
要删除行,我建议创建一个变量,然后使用范围的行并删除它。在开始时添加Dim myRng as Range
,然后将您的.Select
行替换为
Set myRng = Range(cells(i, 1), cells(i, 1).End(xlToRight))
然后在你的“如果是的话”,
myRng.EntireRow.Delete
然后完全删除Else
。
注意:我认为你的范围应该有效,但我不确定第二个cells()
,所以如果它给你问题,请告诉我。