powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка в программном коде "End if without block if" в VBA Excel
3 сообщений из 3, страница 1 из 1
Ошибка в программном коде "End if without block if" в VBA Excel
    #39567311
Snecks09010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, учусь в университете и задали задание "Решение квадратного уравнения ax2+bx+c=0 . В программе учтите все возможные проверки и допущения:A=0;B=0;C=0;A=b=0;A=c=0;A=c=0" через форму в VBA Excel.
Ниже прикрепил скрин с формой как она выглядит. Код написан для кнопки "Счет". Когда нажимаю на кнопку выдает ошибку в VBA "End if without block if" , как бы я не пытался исправить, всё равно где-то она появляется. Остановился на этом варианте кода. Красным отметил где программа останавливается и выдает ошибку. Поэтому прошу помощи у вас как исправить и возможно как-то дополнить код, чтобы он исправно работал. Если нужна какая-то дополнительная информация пишите прикреплю дальше в теме. Заранее спасибо за ответы и помощь.


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
Private Sub CommandButton1_Click()

If Not IsNumeric(TextBox1) Or Not IsNumeric(TextBox2) Or Not IsNumeric(TextBox3) Then
MsgBox "Исходные данные введены неверно или не полностью!", , "Введите числа"
Exit Sub
Else
a = CDbl(TextBox1)
b = CDbl(TextBox2)
c = CDbl(TextBox3)
End If


If (a = 0 And b = 0) Or (D < 0) Then
MsgBox "Корней нет"
Exit Sub
End If

If (a = 0 And c = 0) Or (b = 0 And c = 0) Then
TextBox5 = "0"
Exit Sub
End If

If a = 0 Then
If b <> 0 Then
TextBox5 = -c / b
Else
MsgBox "На ноль делить нельзя!"
Exit Sub
End If
End If

If b = 0 Then
If a = 0 Then MsgBox "На ноль делить нельзя!"
Exit Sub
Else
If -c / a < 0 Then
MsgBox "Нельзя извлекать корень из отрицательного числа"
Exit Sub
Else
If a = 0 Then
MsgBox "На ноль делить нельзя!"
Exit Sub
Else
TextBox5 = Sqr(-c / a) And TextBox6 = -Sqr(-c / a)
End If
End If
End If
 End If


If с = 0 Then
If a <> 0 Then
TextBox5 = "0" And TextBox6 = -b / a
Else: MsgBox "На ноль делить нельзя!"
Exit Sub
End If
End If

D = (b) ^ 2 * -4 * a * c
If a <> 0 And b <> 0 And c <> 0 Then
TextBox5 = (-b + Sqr(D)) / 2 * a And TextBox6 = (-b - Sqr(D)) / 2 * a
Else
MsgBox "На ноль делить нельзя!"
Exit Sub
End If


End Sub


...
Рейтинг: 0 / 0
Ошибка в программном коде "End if without block if" в VBA Excel
    #39567323
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) В университете не учили ставить отступы для строк, когда погружаешься в цикл или условие?

поставьте отступы, сразу будет видна ошибка

2) В университете не давали синтаксис if для VB?

Код: vbnet
1.
If условие Then оператор

и
Код: vbnet
1.
2.
3.
If условие Then
  оператор
End If



это разный синтакис и его нельзя смешивать
...
Рейтинг: 0 / 0
Ошибка в программном коде "End if without block if" в VBA Excel
    #39567328
Snecks09010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое, нет, к сожалению в университете не учили, так как информатика идет как второстепенный предмет и учебного времени на нее уделяется мало. Как вы посоветовали действительно проще и легче найти где ошибся, еще раз большое спасибо)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка в программном коде "End if without block if" в VBA Excel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]