VBA Excel 2010,isError函数

如果没有发现错误,我希望程序输出一个消息。

Sub casesVsQueue() Dim loop_counter As Integer Dim colD_counter As Integer loop_counter = 1 colD_counter = 2 Do Until IsEmpty(Sheets("Sheet1").Range("A" & loop_counter).Value) If IsError(Sheets("Sheet1").Range("C" & loop_counter).Value) Then Sheets("Sheet1").Range("D" & colD_counter).Value = Sheets("Sheet1").Range("A" & loop_counter).Value colD_counter = colD_counter + 1 End If loop_counter = loop_counter + 1 Loop End Sub 

在你循环之后的最后,在closures你的sub之前添加这个:

  Loop If colD_counter = 2 Then MsgBox "Everything is fine" End Sub 

基本上,因为colD_counter '计数'的错误,如果它不会改变你的循环,保持= 2,那么你有msgbox说没有错误出现。

你可以保持你的vb的其余部分不变。 我只是试了一下,似乎工作正常。

这是你想要的?

 Sub casesVsQueue() Dim loop_counter As Integer Dim colD_counter As Integer Dim lngLastRow As Long loop_counter = 1 colD_counter = 2 With ThisWorkbook.Worksheets("Sheet1") lngLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row For loop_counter = 1 To lngLastRow If VarType(.Cells(loop_counter, "C").Value) = vbError Or .Cells(loop_counter, "C").Value = vbNullString Then .Cells(colD_counter, "D").Value = .Cells(loop_counter, "A").Value colD_counter = colD_counter + 1 End If Next loop_counter End With End Sub 

如果您有任何问题或疑问,请告知我。