2016-06-06 267 views
2

我希望程序在未找到錯誤的情況下輸出消息。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 
+0

那麼目前你的代碼有問題嗎? –

回答

1

在你的循環後,快結束的時候,您關閉之前,你的子補充一點:

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

基本上是因爲colD_counter「數」的錯誤,如果它不能在你的循環過程中的變化,保持= 2,則你有msgbox說沒有錯誤出現。

您可以保持vb的其餘部分不變。我只是試了一下,它似乎工作正常。

+0

非常感謝 –

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 

讓我知道如果您有任何問題或疑問。