|
Тема |
Re: For and Next ... [re: vector_m] |
|
Автор | Ивaн (Нерегистриран) | |
Публикувано | 21.03.12 12:05 |
|
|
For J = 12 To 55
If (Sheets("Справка").Cells(J, 2)) = (Sheets("База").Cells(J, 2)) Then
Sheets("База").Cells(J, 5) = Sheets("Справка").Range("AQ" & J)
Sheets("База").Cells(J, 6) = Sheets("Справка").Range("AL" & J)
Sheets("База").Cells(J, 7) = Sheets("Справка").Range("AK" & J)
Sheets("База").Cells(J, 41) = Sheets("Справка").Range("AP" & J)
End If
Next J
това аз бих го преработил така:
sub AlaBala( J as long)
DIM J as long, Namereno as boolean, K as long, St as String
namereno=false
K=11
while (K<55) and (not namereno) do
K=K+1
namereno=(Sheets("Справка").Cells(J, 2)) = (Sheets("База").Cells(K, 2))
wend
if namereno then
Sheets("База").Cells(K, 5) = Sheets("Справка").Range("AQ" & J)
Sheets("База").Cells(K, 6) = Sheets("Справка").Range("AL" & J)
Sheets("База").Cells(K, 7) = Sheets("Справка").Range("AK" & J)
Sheets("База").Cells(K, 41) = Sheets("Справка").Range("AP" & J)
else
st="Не спи като въвеждаш!"
Sheets("База").Cells(K, 5) = st
Sheets("База").Cells(K, 6) = st
Sheets("База").Cells(K, 7) = st
Sheets("База").Cells(K, 41) = st
end if
end Sub
Е, не претендирам за грешки в кода, ама нещо таквоз...
Ако цикълът е с FOR имаш винаги обхождане до края (освен ако не излезеш принудително, ама не е за предпочитане таквоз програмиране).Даже и да го намери тенекето на 1 още....При голяма номенклатура - ще се бави.
Разбира се могат да се ползват и готовите функции на М$. Аз не го правя по 2 причини (винаги когато мога де):
1.По-лесно е ако един ден се наложи за преработка за в опънатия офис
2.Мразим М$ (работим на продуктите му по принуда). По секакъв начин те карат те да си все по-зависим от тях...
Ади пиши кво стана с кода.
|
| |
|
|
|