|
Тема
|
брояч с for...
|
|
Автор |
vector_m (непознат
) |
Публикувано | 20.09.11 20:20 |
|
For J = 12 To 55
If (sheets("Януари").Range("AQ" & J) = sheets("База").Cells(J, 5)) Then
MsgBox ("Данните са актуализирани !"): Exit Sub
ElseIf (sheets("Януари").Range("AQ" & J) <> sheets("База").Cells(J, 5)) Then
MsgBox ("Даните не са актуални!"): Exit Sub
End If
Next J
End Sub
Написах този сорс с идеята да сравни данните от sheets("Януари") с данните от sheets("база"), и ако са еднакви да съобщи , че данните са актуализирани, а ако ли не да съобщи, че данните на са актуални!
Но какво се случва .... брояча се завърта само един път , тоест проверява само първите данни и ако те са верни съобщава ,че данните са актуализирани а ако не са еднакви - данните не са актуални !
Въпроса ми е , как брояча да се завърти толкова пъти тоест в случая 55 , да обходи целият ред и ако открие различна данна ,чак тогава да сигнализира!
| |
|
Ако искаш само едно съобщение, не го оставяй вътре в цикъла.
Освен това добре е при първата неуспешна проверка да се напусне
цикъла, за да се избегнат ненужни сравнения. Примерно:
is_actual = True
For J = 12 To 55
is_actual = is_actual And ((Sheets("Януари").Range("AQ" & J) = Sheets("База").Cells(J, 5)))
If Not (is_actual) Then Exit For
Next J
If is_actual Then
MsgBox ("Данните са актуализирани!")
Else
MsgBox ("Данните не са актуални!")
End If
Опит е името, с което хората наричат грешките си. О.Уайлд
| |
|
Много ти благодаря ! Получи се перферктно !!!
| |
|
|
|
|