2016-12-19 2 views
-1

Привет, я пытаюсь получить ответ на довольно простой вопрос, но я пытаюсь заставить его работать в excel Мне нужна программа для отображения правильного ответа на экране в настоящий момент продолжает придумывать 2 моего кодаКод VB не работает в 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 

Я хочу, чтобы придумать правильный ответ на выше заявление Я хочу программу в раз А1 на г и затем разделить его на 2, а затем увидеть, если его больше, чем A2 раз i, и петля вокруг программы, пока не будет найден номер

+4

'31.2928' не является целым числом и это не код VB.NET. Пожалуйста, прочитайте [ask], а также возьмите [tour] – Plutonix

+0

его старую равнину VB? @plutonix прав, эти числа не являются целыми. –

ответ

2

Вы сначала установили A1 - 31 и A2 - 22. Затем вы вычисляете (((31 * 1)/2)) > (22 * 1), что соответствует False. (Это сделало бы это, даже если вы рассчитали (((31.2928 * 1)/2)) > (22.352 * 1).) Потому что это False вы установили i быть i + 1 который 2. Затем установите Ans = i, так Ans теперь 2.

Я считаю, что вы хотите

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 

Однако, поскольку 31.2928 * i /2 никогда не будет превышать 22.352 * i (потому что 15,6464 < 22,352), я рекомендовал бы вам не запустите этот код, потому что он выйдет из строя один раз i достигает 32767 и дает ошибку переполнения.

Примечание: уравнение вида (a * i) > (b * i) эквивалентно a > b (после деления обе стороны от общей стоимости i), так что ответ будет True или False независимо от значения i(при условии положительных значений i) ,

Смежные вопросы