VBA Excel 2010,isError函数

时间:2016-06-06 20:35:42

标签: excel vba excel-vba

如果没有找到错误,我希望程序输出一条消息。

   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

2 个答案:

答案 0 :(得分:1)

在你的循环结束后,在关闭你的sub之前添加:

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

基本上因为colD_counter'计数'错误,如果它在循环期间没有变化,则保持= 2,那么你有msgbox表示没有错误出现。

你可以保持vb的其余部分不受影响。我刚试了一下它似乎工作正常。

答案 1 :(得分:0)

这是你在找什么?

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

如果您有任何问题或疑问,请与我们联系。