Hvernig er hægt að bera kennsl á og meðhöndla allar mögulegar villur í Excel 2016? Oft geturðu það ekki. Sem betur fer býður VBA upp á aðra leið til að takast á við þessar leiðinlegu villur.
Skoðaðu EnterSquareRoot málsmeðferðina aftur
Skoðaðu eftirfarandi kóða. Rútínan notar All-purpose On Error yfirlýsingu til að fanga allar villur og athuga síðan hvort inntaksboxið hafi verið hætt.
Sub EnterSquareRoot5()
Dim Num As Variant
Dimm skilaboð sem strengur
' Settu upp villumeðferð
Við Villa í GoTo BadEntry
' Biddu um gildi
Num = InputBox(„Sláðu inn gildi“)
' Hætta ef hætt er við
Ef Num = ““ Hætta þá undir
' Settu inn veldisrótina
ActiveCell.Value = Sqr(Num)
Hætta undir
BadEntry:
Msg = "Villa kom upp." & vbNewLine & vbNewLine
Msg = Msg & "Gakktu úr skugga um að svið sé valið,"
Msg = Msg & "blaðið er ekki varið, "
Msg = Msg & "og þú slærð inn óneikvætt gildi."
MsgBox Msg, vbCritical
End Sub
Þessi venja fangar hvers kyns afturkreistingarvillu. Eftir að keyrsluvilla hefur verið gild, sýnir endurskoðaða EnterSquareRoot aðferðin þennan skilaboðareit. Þessi skilaboðakassi lýsir líklegustu orsökum villunnar.
Runtime villa í ferlinu býr til þessi hálfhjálplegu villuboð.
Á Villa virkar ekki?
Ef On Error yfirlýsing virkar ekki eins og auglýst er þarftu að breyta einni af stillingunum þínum:
Virkjaðu VBE.
Veldu Verkfæri → Valkostir skipunina.
Smelltu á Almennt flipann í Valkostir valmyndinni.
Gakktu úr skugga um að Break on All Errors stillingin sé ekki valin.
Ef þessi stilling er valin, hunsar Excel í raun allar On Error staðhæfingar. Þú vilt venjulega hafa valkostina fyrir villugildrun stillta á Brot á ómeðhöndlaðar villur.
Um On Error yfirlýsinguna
Með því að nota On Error yfirlýsingu í VBA kóðanum þínum gerirðu þér kleift að komast framhjá innbyggðri villumeðferð Excel og nota þinn eigin villumeðferðarkóða. Í fyrra dæmi veldur keyrsluvilla því að keyrsla á fjölvi hoppar í yfirlýsinguna sem er merkt BadEntry. Þar af leiðandi forðastu óvingjarnleg villuskilaboð í Excel og þú getur birt eigin skilaboð til notandans.
Taktu eftir að dæmið notar Exit Sub yfirlýsingu rétt á undan BadEntry merkinu. Þessi yfirlýsing er nauðsynleg vegna þess að þú vilt ekki keyra villumeðferðarkóðann ef villa kemur ekki upp .