Avatar billede alex_sleiborg Nybegynder
02. august 2005 - 21:58 Der er 2 kommentarer og
1 løsning

If = Null

Jeg har fået noget programmering som jeg skal lave i VBA, har aldrig brugt det før (Er vandt til c#) og kommer heller ikke til det hvis jeg selv kan bestemme...

Jeg kan ikke helt finde ud af syntaksen, selvom jeg har kigget på diverse tutorials.

Her er det første problem

If U = "" Then R = InputBox("Indtast Modstand")

Eller hvis jeg prøver

If U = Null Then R = InputBox("Indtast Modstand")

Det gider den ikke, det virker fint hvis jeg siger U = "1".

Og så kan jeg heller ikke få Try og Catch til og virke

Her er hele kildekoden, det er ganske grundlæggende makro programmering i word. Ved det, ikke særligt spændende. Men den if sætning og så Try og catch kan jeg få til og virke. Har der er nogen der lige gider opg fortælle mig fejlen

Sub Ohm()
'
' Ohm Makro
' Makro oprettet 02-08-2005 af Alex Sleiborg
'

Dim A As Integer

  A = InputBox("Velkommen til ohm Lommeregneren\nVælg hvad du vil have regnet ud\n1. Effekt\n2. Strøm\n3. Spænding\n4. Modstand")

  Select Case A
       
        Dim U As Integer 'U = Spænding som måles i volt
        Dim I As Integer 'I = Strøm som måles i Amperer
        Dim R As Integer 'R = Modstand som måles i ohm
        Dim P As Integer 'P = Effekt som måles i watt
       
        'Effekten "Watt" Formellen (U*I) (I²*R) (U²/R)
        Case 1

                Try
               
                U = InputBox("Indtast Spændingen. Hvis du ikke har spændingen, tryk ikke noget")
                    If U = "" Then R = InputBox("Indtast Modstand")
                                   
                I = InputBox("Indtast Strømmen")
               
                Catch
                    MsgBox ("Du har indtastet et ikke gyldigt tal")
                End Try
                             

        'Strøm "Amperer" Formellen (U/R) (P/U) (Kvadratroden af P/R)
        Case 2

                R = InputBox("Indtast Modstand")
                U = InputBox("Indtast Spænding")

        'Spænding "Volt" Formellen (Kvadratroden af P*R) (P/I) (R*I)
        Case 3

                I = InputBox("Indtast Strømmen")
                R = InputBox("Indtast Modstanden")

        'Modstand "Ohm" (P/I²) (U²/P) (U/I)
        Case 4

                U = InputBox("Indtast Spændingen")
                I = InputBox("Indtast Strømmen")
    End Select

End Sub
Avatar billede hiks Nybegynder
02. august 2005 - 22:33 #1
hej

Det kan jeg vist lige klare for dig... Grunden til at du får en fejl ved Null værdier er ikke dit if-statement men at du forsøger at tildele null til en integer variabel. Prøv følgende hvor jeg også har vist et eksempel på hvordan du kan hoppe frem og tilbage i koden...

Sub Ohm()
'
' Ohm Makro
' Makro oprettet 02-08-2005 af Alex Sleiborg
'

Dim A As String

startIgen:
    A = InputBox("Velkommen til ohm Lommeregneren..." & vbCr & _
              "Vælg hvad du vil have regnet ud:" & vbCrLf & vbCrLf & _
              "1. Effekt." & vbCrLf & _
              "2. Strøm" & vbCrLf & _
              "3. Spænding" & vbCrLf & _
              "4. Modstand", "Lommeregneren", 1)
   
    'tjek variablen a, hvis ikke ok - start om igen...
    If IsNumeric(A) = False Then
        GoTo startIgen
    ElseIf A = "" Or A < 1 Or A > 4 Then
        GoTo startIgen
    End If
   
  Select Case A
       
        Dim U As String 'U = Spænding som måles i volt
        Dim I As String 'I = Strøm som måles i Amperer
        Dim R As String 'R = Modstand som måles i ohm
        Dim P As String 'P = Effekt som måles i watt

...

/hiks
Avatar billede hiks Nybegynder
02. august 2005 - 22:34 #2
hov - ang. try og catch - ja så virker det ikke i vba. Der skal du lave errorhandles med eksempelvis:

on error resume next

on error goto startIgen

etc

/hiks
Avatar billede hiks Nybegynder
02. august 2005 - 22:36 #3
du kan se mere omkring errorhandling og sammenligning med c# etc her:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnoxpta/html/odc_tencodeconverts.asp

scroll ned til error handling eller tryk på linket i toppen.

/hiks
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