Страницы: 1
RSS
Эксель "Не отвечает", после нажатия на кнопку вычислить.
 

Разбираю задачу в которой нужно выполнить табулирование на множестве значений аргументов от 0 до R с шагом его изменения равным 0,5. Количество точек m=11. При нажатии на кнопку "Вычислить" происходит "Закрытие Эксель".


Код
Private Sub CommandButton1_Click()
Dim a, b, h, m As Single
a = Val(TextBox1.Text)
h = Val(TextBox2.Text)
m = Val(TextBox3.Text)
b = h * (m - 1) + a
Debug.Print "x", "y"
For x = a To b Step h
y = (x * x * x * x + 3) * Sin(6 * x)
Debug.Print x, y
Next x
End Sub
Изменено: doorqw - 12.06.2025 16:58:23
 
Val лучше убрать, поскольку он не правильно преобразует числа с запятой, при этом шаг цикла (h) получается равным нулю и цикл становится безкончным что вызывает зависание и сбой.
Код
Private Sub CommandButton1_Click()
    Dim a, b, h, m As Single
    
    a = TextBox1.Text
    h = TextBox2.Text
    If h <> 0 Then Else Exit Sub
    m = TextBox3.Text
    b = h * (m - 1) + a
    
    Debug.Print "x", "y"
    
    For x = a To b Step h
        y = (x * x * x * x + 3) * Sin(6 * x)
        Debug.Print x, y
    Next
End Sub
Изменено: testuser - 12.06.2025 17:18:34
 
Теперь после нажатия на кнопку вычислить, не происходит ничего:) И программа не зависает, но нужно чтобы слева от условий появились значения x и y
 
Я уже как-то писал - изучайте инструменты отладки кода.
Пошаговый проход кода, точки останова, просмотр значений переменных в окнах Local и Watch и т.п.
Согласие есть продукт при полном непротивлении сторон
Страницы: 1
Читают тему
Наверх