Avatar billede PGFfyn Mester
08. december 2019 - 16:49 Der er 10 kommentarer

Return fra Subrutine

Hej.
Den vil ikke køre. Er kaldt fra en anden sub og skal gerne tilbage til den og starte lige efter kaldet til denne sub.
Sub Fejlcheck()

Sheets("Check").Select

If Range("K26").Value <> Range("g27").Value Then
End If
Exit Sub
Else
Return

End Sub
Avatar billede Jan K Ekspert
08. december 2019 - 17:33 #1
M8n ikke du skulle flytte End if ned efter Return. Lige nu vil du altid udføre Exit sub 8g så sker xer ikke mere.
Avatar billede PGFfyn Mester
09. december 2019 - 07:03 #2
Vil heller ikke køre med den flytning - standser ved Return som farves gul.

sub Fejlcheck()

Sheets("Check").Select
If Range("K26").Value <> Range("g27").Value Then
Exit Sub
Else
Return
End If

End Sub
Avatar billede Jan K Ekspert
09. december 2019 - 09:28 #3
Fjern Return fra koden. Du skal jo ikke returnere noget.
Avatar billede PGFfyn Mester
09. december 2019 - 09:49 #4
Prøver.
Mente at SubGo …… og Return hørte sammen - forstået sådan, at Return vil genoptage afviklingen makroen lige efter SubGo blev aktiveret.
Avatar billede PGFfyn Mester
09. december 2019 - 10:21 #5
Exit Sub gør vist det at den returnerer til afsenderadressen og fortsætter afvikling af "moderen" - og det var ikke meningen - al afvikling skal stoppe hvis det er sandt at de er forskellige.
Kan en stop kommando klare sagen?
Avatar billede store-morten Ekspert
09. december 2019 - 10:45 #6
Prøv denne i "moderen":

If Sheets("Check").Range("K26").Value <> Sheets("Check").Range("G27").Value Then Exit Sub
Avatar billede Jan K Ekspert
09. december 2019 - 11:26 #7
Du har ret i at SubGo og Return hører sammen, men de skal være i samme rutine.
Avatar billede PGFfyn Mester
10. december 2019 - 10:52 #8
Tak - det virker fint nu. Ser dog også ud til at End afliver videre eksekvering af "Check" når betingelser ikke er tilstede.
Avatar billede PGFfyn Mester
14. december 2019 - 11:53 #9
Nogen som har en viden om hvordan indtastet tal på 2,40 i Ecxel 2016 kan blive til

2,39999999999456 når tallet bruges i kode i VBA - men har også set det i andre sammenhænge uden VBA er indblandet.
Avatar billede Jan K Ekspert
14. december 2019 - 15:55 #10
Det skyldes den mådr det binære taklsystem håndterer decimaler på, og det optræder i en række konkrete tilfælde uden at jeg kan give eksempler. Harcsrlv oplevet det ved flere lejligheder.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester