Top.Mail.Ru
Ответы

Помогите пожалуйста с VBA Excel

Разработать программу, которая по введенным числовым значениям некоторого уравнения решает данное уравнение и находит неизвестную переменную х. Результат вычисления выводится в текстовое окно на форме и на лист Excel
уравнение x^2-7х+10/X^2-8x+12

Private Sub CommandButton1_Click()
Dim a, b, c As Double
a = CDbl(TextBox1.Text)
b = CDbl(TextBox2.Text)
c = CDbl(TextBox3.Text)
With ActiveSheet
Range("b4").Value = a
Range("b5").Value = b
Range("b6").Value = c
Range("b7").FormulaLocal = "(x ^ 2 - 7 * x + 10) / (x ^ 2 - 8 * x + 12)"
Range("b7").GoalSeek Goal:=y, changingCell:=Range("b8")
TextBox4.Text = CStr(.Range("b8").Value)
TextBox4.Text = FormatNumber(TextBox4.Text, 2)
End With
End Sub
Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub
Private Sub UserForm_initialize()
Worksheets(1).Visible = False
End Sub

По дате
По Рейтингу
Аватар пользователя
Профи
1мес

Private Sub CommandButton1_Click()
Dim x As Double
Dim result As Double
Dim equation As String

' Получаем значение x из TextBox4
If Not IsNumeric(TextBox4.Text) Then
MsgBox "Введите числовое значение для x!", vbExclamation
Exit Sub
End If

x = CDbl(TextBox4.Text)

' Проверка знаменателя на ноль
If (x ^ 2 - 8 * x + 12) = 0 Then
MsgBox "Ошибка: знаменатель равен нулю!", vbCritical
Exit Sub
End If

' Вычисление уравнения
result = (x ^ 2 - 7 * x + 10) / (x ^ 2 - 8 * x + 12)

' Вывод результата
TextBox5.Text = FormatNumber(result, 4)

' Запись в лист Excel
With ActiveSheet
.Range("B4").Value = "Уравнение:"
.Range("B5").Value = "(x^2 - 7x + 10)/(x^2 - 8x + 12)"
.Range("B6").Value = "x ="
.Range("C6").Value = x
.Range("B7").Value = "Результат:"
.Range("C7").Value = result
End With
End Sub

Private Sub CommandButton2_Click()
' Очистка полей
TextBox4.Text = ""
TextBox5.Text = ""

' Очистка листа
With ActiveSheet
.Range("B4:C7").ClearContents
End With
End Sub

Private Sub CommandButton3_Click()
UserForm1.Hide
End Sub

Private Sub UserForm_Initialize()
' Настройка начального состояния формы
TextBox4.Text = ""
TextBox5.Text = ""
Label1.Caption = "Введите значение x:"
Label2.Caption = "Результат:"
CommandButton1.Caption = "Вычислить"
CommandButton2.Caption = "Очистить"
CommandButton3.Caption = "Закрыть"
End Sub

Держи и не множко под шаманил

И да чуть не забыл при x=2 и x=6 знаменатель обращается в ноль (решения не существует)

А при x=2 и x=5 числитель равен нулю (уравнение = 0)

Аватар пользователя
Высший разум
1мес

Где в коде используются введённые переменные a,b,c?