2015-09-10 3 views
0

Это начало простой демонстрации математической теоремы.VBA возвращает 2 варианта в MsgBox

Когда я запускаю этот макрос, в MsgBox не отображаются ни Коэффициент, ни Степень.

Option Explicit 
Sub Function1() 
Dim Degree, Coefficient 
MsgBox "Enter polynomial by terms." 
Cells(1, 2).Value = Degree 
Cells(2, 2).Value = Coefficient 
    If IsNumeric(Degree) = True Then 
    Else: MsgBox "IsNumeric(Degree)=False)" 
     If IsNumeric(Coefficient) = True Then 
     Else: MsgBox "IsNumeric(Coefficient)=False" 
      MsgBox Coefficient & "x^" & Degree 
     End If 
    End If 
End Sub 

EDIT: новая версия кода, как предложено комментарии (еще не работает):

Option Explicit 
Sub Function1() 
Dim Degree, Coefficient 
MsgBox "Enter polynomial by terms." 
Degree = Cells(1, 2).Value 
Coefficient = Cells(2, 2).Value 
    If IsNumeric(Degree) = True Then 
    Else: MsgBox "IsNumeric(Degree)=False)" 
     If IsNumeric(Coefficient) = True Then 
     Else: MsgBox "IsNumeric(Coefficient)=False" 
      MsgBox Coefficient & "x^" & Degree 
     End If 
    End If 
End Sub 
+0

Вы никогда не назначаете значение «Степень» и «Коэффициент». Вместо этого вы назначаете ячейки B1 и B2 нулевым значениям, потому что Degree and Coefficient никогда не были присвоены значения. Предполагают ли эти линии наоборот? Такие, что 'Степень = Ячейки (1, 2) .Value' ?? – tigeravatar

+0

Порядок присвоения не выглядит правильным, попробуйте 'Degree = Cells (1, 2) .Value' и так далее. – BrakNicku

+0

Спасибо за предложения. Все еще не работает. –

ответ

2

Вы можете переписать процедуру что-то вроде этого:

Sub Function1() 
    Dim Degree, Coefficient 
    MsgBox "Enter polynomial by terms." 
    Degree = Cells(1, 2).Value 
    Coefficient = Cells(2, 2).Value 

    If Len(Trim(Degree)) > 0 And IsNumeric(Degree) Then 
     MsgBox "Degree is numeric" 
    Else 
     MsgBox "Degree is not numeric. Exiting" 
     Exit Sub 
    End If 

    If Len(Trim(Coefficient)) > 0 And IsNumeric(Coefficient) Then 
     MsgBox "Coefficient is numeric" 
    Else 
     MsgBox "Coefficient is not numeric. Exiting" 
     Exit Sub 
    End If 

    MsgBox Coefficient & "x^" & Degree 

End Sub 

В ячейке B1 введите 1. В ячейке B2 введите тип 2. Запустите процедуру, и вы увидите ожидаемый результат. Вы можете строить оттуда.

+0

Я думаю, что OP выиграет от выполнения инструкций If, как указано выше, вместо использования двоеточий - как @ user3964075 указал, это может вызвать некоторую путаницу. – BruceWayne

+0

Спасибо, поставьте последний код выше. –

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

  • Нет связанных вопросов^_^