NAPAKA: Too many line continuations

Pomoč pri izdelavi makrov
Odgovori
mb
Prispevkov: 57
Pridružen: Sr Okt 26, 2005 7:40 pm

NAPAKA: Too many line continuations

Odgovor Napisal/-a mb »

Pozdravljeni,

zanima me kako naj rešim naslednjo težavo:
Želim napisati VBA kodo za naslednje pogoje:

Če je:
[(B&vrstica) = ID15 ali ID16 ali ID17 ali ID18 ali..... ID30] IN
[(M&vrstica) = IH7 ali IH8 ali IH9 ali ((M&vrstica)=IH11 in (O&vrstica)=II11) ali
((M&vrstica)=IH12 in (N&vrstica)=II12 in (O&vrstica)<>II13 in (O&vrstica)<>II14) ali
((M&vrstica)=IH15 in (N&vrstica)=II15) ali ((M&vrstica)=IH16 in (O&vrstica)=II16)] IN
[(M&vrstica)=ID4] IN
[(D&vrstica)=IM7 ali IM8 ali IM9 ali IM10] IN
[(C&vrstica)=IM19 ali IM20 ali IM21]

potem kopiraj B&vrstica:P&vrstica.....

Koda: Izberi vse

.....
.....
.....
  For vrstica = 5 To 1000
  IF(((Range("B" & vrstica).Value = Range("ID15")) Or _
        (Range("B" & vrstica).Value = Range("ID16")) Or _
        (Range("B" & vrstica).Value = Range("ID17")) Or _
        (Range("B" & vrstica).Value = Range("ID18")) Or _
        (Range("B" & vrstica).Value = Range("ID19")) Or _
        (Range("B" & vrstica).Value = Range("ID20")) Or _
        (Range("B" & vrstica).Value = Range("ID21")) Or _
        (Range("B" & vrstica).Value = Range("ID22")) Or _
        (Range("B" & vrstica).Value = Range("ID23")) Or _
        (Range("B" & vrstica).Value = Range("ID24")) Or _
        (Range("B" & vrstica).Value = Range("ID25")) Or _
        (Range("B" & vrstica).Value = Range("ID26")) Or _
        (Range("B" & vrstica).Value = Range("ID27")) Or _
        (Range("B" & vrstica).Value = Range("ID28")) Or _
        (Range("B" & vrstica).Value = Range("ID29")) Or _
        (Range("B" & vrstica).Value = Range("ID30")) And _
        ((Range("M" & vrstica).Value = Range("IH7")) Or _
        (Range("M" & vrstica).Value = Range("IH8")) Or _
        (Range("M" & vrstica).Value = Range("IH9")) Or _
        ((Range("M" & vrstica).Value = Range("IH11")) And _
        (Range("O" & vrstica).Value = Range("II11"))) Or _
        ((Range("M" & vrstica).Value = Range("IH12")) And _
         (Range("N" & vrstica).Value <> Range("II12")) And _
         (Range("O" & vrstica).Value <> Range("II13")) And _
Tu mi VBA javi napako: Too many line continuations

Upam, da boste razvozlali kaj hocem. Ali mi lahko pomagate napisati ta del kode.

Hvala in LP
Boštjan
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Pozdravljeni,

Preprosto razbite test na več manjših. To je vse:

Koda: Izberi vse

' Namesto
if (pogoj1 or pogoj2 or pogoj3 or pogoj4 or pogoj5 or pogoj6 or pogoj7) then

' pač napišite
DelniPogoj1 = pogoj1 or pogoj2 or pogoj3 
DelniPogoj2 = pogoj4 or pogoj5 or pogoj6
if (DelniPogoj1 or DelniPogoj2 or pogoj7) then
Vendar pa je dobro pred tem še malce prevetriti tudi vašo preostalo kodo.

Koda: Izberi vse

'Namesto
Range("B" & vrstica).Value
' zapišite raje
Cells(vrstica, 2).Value 
' to je precej hitrejša in optimalnejša koda!
lp,
lp,
Matjaž Prtenjak
Administrator
Odgovori