Hirdetés

Új hozzászólás Aktív témák

  • m.zmrzlina

    senior tag

    Van egy ilyen kódrészletem:

    Range("C" & intMeterfejlec & ":D" & intMeterfejlec_vege).Select
    On Error GoTo hianyzoport:
    intPorthol = Selection.Find(What:=strPort, After:=ActiveCell, LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Row

    If Mid(Cells(intPorthol + 4, 5).Value, 9, 4) <> "UNDF" Then
    strPortmap(1, intKovport) = Mid(Cells(intPorthol + 4, 5).Value, 9, 4)
    intKovport = intKovport + 1
    Else
    strPortmap(1, intKovport) = Empty
    intKovport = intKovport + 1
    End If

    hianyzoport:
    If Err.Number <> 0 Then
    strPortmap(1, intKovport) = "NONE"
    intKovport = intKovport + 1
    End If

    Ez egy számlálós ciklus belsejében van és azt csinálja, egy kijelölt tartományon belül megkeres egy értéket (strPort változó) és ettől a cellától meghatározott (sor, oszlop) távolságra lévő cella tartalmának bizonyos részét beleírja egy tömb megfelelő helyére (ha az megfelel bizonyos feltételeknek) Ha nem találja a strPort változót akkor hibára fut és a kérdéses tömbelem "NONE" lesz.

    A probléma az, hogy az első hibánál szépen lefut a hibakezelés (elugrik a kód a hianyzoport: cimkére) a második esetben azonban Object variable or With block variable not set (Error 91) hibával kiakad.

    Kérdés: miért fut le először jól és miért akad ki ugyanannál a hibánál másodszor?

Új hozzászólás Aktív témák