Ли
Лидия

Помогите найти ошибку в скрипте VBA

Вот скриптец, складывает и вычитает дроби.
Private Sub Command1_Click()
Private c1, c2, c3, d1, d2, d3, k As Variant 'Переменные
c1 = Text1.Text
c2 = Text3.Text
c3 = Text5.Text
d1 = Text2.Text
d2 = Text4.Text
d3 = Text6.Text
k = Text7.Text

If Option2.Value = 0 Then 'Если
If d1 = d2 Then 'То
c3 = c1 + c2
d3 = d1
k = c3 / d3
Else 'Иначе
d3 = d1 * d2
c3 = c1 * d2 + c2 * d1
k = c3 / d3
End If

Else 'Иначе

If d1 = d2 Then 'То
c3 = c1 - c2
d3 = d1
k = c3 / d3
Else 'Иначе
d3 = d1 * d2
c3 = c1 * d2 - c2 * d1
k = c3 / d3
End If
End If
End Sub

Данил
Данил

не знаю что у вас за Office, но у меня объекты по-другому называют себя,
т. е. вместо Option2 - Option2Button...хотя мб вы просто переименовали их, не суть важно короче)
Я так понял с1 и с2 - числители суммы/разности дробей, а d2, d3 - знаменатели.
так же d3 и c3 - дробь-результат. А "k" - десятичная дробь? Если все правильно понял.
Сам алгоритм правильный, возможно только, что вы не учитываете типы, к примеру:
чем делать так c1 = Text1.Text, лучше делать так c1 = Val(Text1.Text)
т. к. в Вашем случае переменой вы присваиваете текстовое значение, и соответственно при операции "сложение"(+) вы получите не то значение, т. е. если м=1, а n=2, но вы присвоили им значения напрямую из текстбоксов, при такой операции: м+n, вы получите не 3, а 12. Поэтому и надо переводить сразу в числовой формат командой Val

Похожие вопросы
Помогите найти ошибку!
Что за ошибка со скриптом ?
Помогите с программой на VBA для Excel!
в чем ошибка? код на VBA
Помогите найти скрипт
Помогите чайнику найти ошибку
помогите найти ошибку в VBA excel
Помогите найти ошибку в bash скрипте
Помогите найти скрипт!
Помогите найти скрипт !