/ / VBA Excel 2010, функция isError - excel, vba, excel-vba

VBA Excel 2010, функция isError - 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

Отговори:

1 за отговор № 1

В края на краищата след цикъла си, преди да затворите подкана, добавете следното:

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

По принцип защото colD_counter "брои" грешки, ако то не се променя по време на цикъла ви, остава = 2, тогава имате msgbox казвайки, че няма грешка.

Можете да оставите останалата част от вашите недокоснати. Просто го изпробвах и изглежда, че работи добре.


0 за отговор № 2

Това ли търсите?

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

Уведомете ме, ако имате някакви проблеми или въпроси.