14. oktober 2002 - 16:23Der er
7 kommentarer og 1 løsning
If-betingelse VBA Excel
Jeg skal i VBA lave en:
If værdien af tekstbox 1 er forskellig fra "en af værdierne" i et navngivet område på ark1 i denne workbook , SÅ msgbox (der er en fejl)ELSE "Skal der ikke ske noget"
Hvordan sammenligner jeg værdien af txtboks1 med et navngivet range fra regnearket og behøver jeg et else statement?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Det virker delvist! jeg satte " " omkring "sted" og det virkede. De lovlige værdier er: B,U og R.
Hvis jeg nu skriver D eller en anden vilkårlig værdi - kommer den samme fejlmeddelelse (Msgbox) 3 gange og det er ikke helt meningen!
For Each c In Range("Offers") ' Sted = navnet på det navngivne område. If (c) <> lstOffer Then MsgBox ("You must select one of the Offer-types") lstOffer.SetFocus Else End If Next Exit Sub
Det virker altså ikke! Selvom jeg skriver én af de rigtige værdier kommer den med fejlbeskeden. Dette er en meget lang kommando til en knap på en userform. Du kan lige se et brudstykke her:
Private Sub cmdSave_New_Click()
If lstClientName = "" Then MsgBox ("You must select a clientname from the available list") lstClientName.SetFocus Exit Sub End If
For Each c In Range("Offers") ' Sted = navnet på det navngivne område. If (c) <> lstOffer Then MsgBox ("You must select one of the Offer-types") lstOffer.SetFocus Exit Sub Else End If Next
If lstCategory = "" Then MsgBox ("You must select a Category from the available list") lstCategory.SetFocus Exit Sub End If
Jeg har tjekket at jeg har et navngivet områder der hedder "offers", som indeholder værdierne U, B og R.
For Each c In Range("Offers") ' Sted = navnet på det navngivne område. If (c) = lstOffer Then fejl = false exit sub ' her kan du også gå til et navngivet sted i stedet for at afslutte Else fejl = true End If Next if fejl = true then MsgBox ("You must select one of the Offer-types") lstOffer.SetFocus end if
For Each c In Range("Offers") ' Sted = navnet på det navngivne område. If (c) = lstOffer Then fejl = False GoTo AltOk Else fejl = True End If Next If fejl = True Then MsgBox ("You must select one of the Offer-types") lstOffer.SetFocus End If AltOk: If lstCategory = "" Then MsgBox ("You must select a Category from the available list") lstCategory.SetFocus End If
MsgBox ("You must select one of the Offer-types") lstOffer.SetFocus => Du manglede lige en "EXIT SUB" her End If AltOk:
Perfekt løsning ;-)
Mange tak for hjælpen, mvh Laje
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.