2016-12-19 29 views
-1

Hallo Ich versuche, eine Antwort auf eine ziemlich grundlegende Frage zu bekommen, aber ich versuche, es in Excel Ich brauche das Programm, um die richtige Antwort auf dem Bildschirm im Moment es anzuzeigen kommt immer mit 2 meinen Code up istVB Code funktioniert nicht in Excel

Private Sub CommandButton1_Click() 

Dim i As Integer 

Dim A1 As Integer 

Dim A2 As Integer 

Dim Ans As Integer 

i = 1 

A1 = 31.2928 

A2 = 22.352 

If (((A1 * i)/2)) > (A2 * i) Then 

Ans = i 

Else 

     i = i + 1 

End If 

Ans = i 

MsgBox "Value is" & Ans 

End Sub 

ich es auf die obige Aussage mit der richtigen Antwort kommen wollen ich ich das Programm zu Zeiten A1 wollen und dann teilen sie durch 2 und dann zu sehen, ob es ist größer als A2 mal ich und Schleife um das Programm, bis eine Zahl gefunden wird

+4

'31.2928' ist keine ganze Zahl und das ist kein VB.NET-Code. Bitte lies [ask] und nimm auch die [tour] – Plutonix

+0

ist eine alte einfache VB rechts? @plutonix hat Recht, diese Zahl ist keine ganze Zahl. –

Antwort

2

Sie zuerstsetzenbis 31 und A2 bis 22. Dann berechnen Sie (((31 * 1)/2)) > (22 * 1), was False entspricht. (Dies würde auch dann der Fall sein, wenn Sie (((31.2928 * 1)/2)) > (22.352 * 1) berechnet hätten.) Weil es False ist, setzen Sie i auf i + 1, was 2 ist. Anschließend setzen Sie Ans = i, so Ans ist jetzt 2.

Ich glaube, was Sie wollen, ist

Private Sub CommandButton1_Click() 

    Dim i As Integer 
    Dim A1 As Double 
    Dim A2 As Double 
    Dim Ans As Integer 
    i = 1 
    A1 = 31.2928 
    A2 = 22.352 
    Do 
     If (((A1 * i)/2)) > (A2 * i) Then 
      Ans = i 
      Exit Do 
     End If 
     i = i + 1 
    Loop 

    MsgBox "Value is " & Ans 

End Sub 

Da jedoch 31.2928 * i /2 nie 22.352 * i (weil 15,6464 < 22,352) nicht überschreiten, würde ich Ihnen empfehlen, dies nicht tun Führen Sie diesen Code aus, da er einmal ausfällt i erreicht 32767 und gibt einen Überlauffehler.

Hinweis: Eine Gleichung der Form (a * i) > (b * i) entspricht a > b (nach beiden Seiten durch den gemeinsamen Wert Dividieren i), so wird die Antwort True oder False unabhängig von dem Wert von i(vorausgesetzt, positiven Werte von i) seine .