Avatar billede krummel Juniormester
23. september 2019 - 13:09 Der er 4 kommentarer og
1 løsning

VBA excel: if then else

Hvor er fejlen? Er ikke super rutineret vba'er

Celle H6 er lig bogstavet x
Celle H7 er tomt
Celle H8 er lig bogstavet x

If H6 = "x" Then a = "F6;" Else a = ""
If H7 = "x" Then b = "F7;" Else b = ""
If H8 = "x" Then c = "F8;" Else c = ""

optimal = a + b + c
optimal = Left(optimal, Len(optimal) - 1)

Outputtet fra optimal skal gerne være F6;F8  (som tekst)
Avatar billede krummel Juniormester
23. september 2019 - 14:39 #1
En variation af ovenstående for at prøve at finde fejle

H6 er lig 1
H7 er lig 1
H8 er tom

VBA:
If H6 = 1 Then a = "F6;" Else a = "q"
If H7 = 1 Then b = "F7;" Else b = "w"
If H8 = 1 Then c = "F8;" Else c = "e"
optimal = a + b + c
MsgBox optimal

Output bliver "qwe" - bør det ikke være "F6;F7;e" ?
Jeg forstår ikke, hvorfor jeg får dette output - hvad gør jeg galt?
Avatar billede krummel Juniormester
23. september 2019 - 14:44 #2
Og hvis jeg skriver følgende i stedet:

H6 er lig x
H7 er lig x
H8 er tom

VBA:
If H6 = x Then a = "F6;" Else a = "q"
If H7 = x Then b = "F7;" Else b = "w"
If H8 = x Then c = "F8;" Else c = "e"
optimal = a + b + c
MsgBox optimal

bliver output "F6;F7;F8;" hvilket heller ikke giver mening (synes jeg). Er det mig som er en knold eller excel som er gået kold?
Avatar billede store-morten Ekspert
23. september 2019 - 16:35 #3
Prøv:

If Range("H6") = "x" Then
a = "F6;"
Else
a = "q"
End If

If Range("H7") = "x" Then
b = "F7;"
Else
b = "w"
End If

If Range("H8") = "x" Then
c = "F8;"
Else
c = "e"
End If

optimal = a + b + c
MsgBox optimal
Avatar billede Slettet bruger
24. september 2019 - 08:49 #4
du har ikke nogen "end if" - og desuden kan du ikke tælle tekst sammen - så optimal skal regnes med "a & b & c"
Avatar billede krummel Juniormester
24. september 2019 - 09:38 #5
Mange tak - det hjalp :-)
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
Kategori
Kurser inden for grundlæggende programmering

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