Avatar billede gotcha Nybegynder
09. juli 2004 - 10:56 Der er 7 kommentarer og
1 løsning

MsgBox skal returnere True eller False

Jeg har lavet et ark i Excel og er nu interesseret i at spørge brugen, om han/hun ønsker at åbne nogle pdf-filer, før de bliver sent ud via email. Følgende kode virker:

    Dim strView As String

    'get whether user want to view files before sending
    strView = MsgBox("View pdf-files before sending?", vbYesNo)
   
    'if so, then open them
    If strView = 6 Then
   
        Shell ("cmd /C  " & strIssuanceFile)
        Shell ("cmd /C  " & strTurnoverFile)
       
    End If

Jeg fatter bare ikke, hvorfor strView skal dimensioneres som en tekststreng - burde det ikke være en boolsk variabel, og så skulle MsgBox returnere True eller False?

Mvh Morten
Avatar billede medions Nybegynder
09. juli 2004 - 11:00 #1
kan du ikke bruge:

strHvad = Confirm("Ja eller Nej?")

//>Rune
09. juli 2004 - 11:11 #2
msgbox returnere en værdi af typen Integer, da Yes og No har værdierne 6 og 7 (så vidt jeg husker)

Men glem strView og skriv det i et udtryk:

If msgbox("View pdf-files before sending?", vbYesNo+vbquestion) = vbYes then

    Shell ("cmd /C  " & strIssuanceFile)
    Shell ("cmd /C  " & strTurnoverFile)
       
End If
09. juli 2004 - 11:17 #3
Grunden til, at yes og no har værdierne 6 og 7 i stedet for true/false skyldes jo, at msgbox kan bruges til at returnere flere forskellige værdier:

msgbox("spørgsmål?", vbokcancel) retunere 1 eller 2
eller
msgbox("spørgsmål?", vbAbortRetryIgnore) returnere 3, 4 eller 5
Avatar billede skwat Praktikant
09. juli 2004 - 13:38 #4
To forslag
dim bolJANEJMÅSKE as boolean
bolJANEJMÅSKE = iif(msgbox("hvad så mand",vbYesNo,"Livets valg") = vbYes, true,false)

eller

bolJANEJMÅSKE = msgbox("hvad så mand",vbYesNo,"Livets valg") = vbYes

Begge er utestet men den første bør virke
Avatar billede gotcha Nybegynder
09. juli 2004 - 15:04 #5
Nu giver det mere mening, da MsgBox skal returnere mere end 2 værdier. Men jeg forstår stadig ikke, hvorfor den godtager, at jeg dimensionerer strView som en tekststreng, når den returnerer et heltal.
09. juli 2004 - 15:07 #6
Det er fordi VBA er ret fleksibel. I VBA er nedenstående udtryk faktisk sandt:
5 = "5"

Derfor accepterer den String som datatype, men 'oversætter' den selv ved brug.
Avatar billede gotcha Nybegynder
09. juli 2004 - 15:32 #7
Synes det er lidt fesent, men den må jeg så sluge. Og tak for svaret :)
09. juli 2004 - 15:35 #8
Tro mig, der er mange situationer, hvor man er glad for den detalje!
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