powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA, бред
8 сообщений из 8, страница 1 из 1
VBA, бред
    #38070698
taaamerlan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу код добавление в первую незаполненную строку текст, который заполняется на форме.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim i As Long
Dim change As Boolean
Private Sub CommandButton1_Click()
 change = True
 i = 3
 Do
  If Worksheets("Лист1").Range("A" & i).Value = 0 Then
   change = False
  End If
  i = i + 1
 Loop While change = False
 Worksheets("Лист1").Range("A" & i).Value = TextBox1.Text
 Worksheets("Лист1").Range("B" & i).Value = TextBox2.Text
 Worksheets("Лист1").Range("C" & i).Value = TextBox3.Text
 Worksheets("Лист1").Range("D" & i).Value = TextBox4.Text
End Sub


Мне компилятор выдает ошибку "subscript out of range" и подчеркивает первую строку условия. В Чем проблема не пойму. Поможите?
...
Рейтинг: 0 / 0
VBA, бред
    #38070700
taaamerlan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чуть исправил
Dim i As Long
Dim change As Boolean
Private Sub CommandButton1_Click()

change = True
i = 3
Do
If Worksheets("Лист1").Range("A" & i).Value = "" Then
change = False
End If
i = i + 1
Loop While change = True Or i < 100
Worksheets("Лист1").Range("A" & i).Value = TextBox1.Text
Worksheets("Лист1").Range("B" & i).Value = TextBox2.Text
Worksheets("Лист1").Range("C" & i).Value = TextBox3.Text
Worksheets("Лист1").Range("D" & i).Value = TextBox4.Text

End Sub
...
Рейтинг: 0 / 0
VBA, бред
    #38070704
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
taaamerlanчуть исправили от этого стало работать?
...
Рейтинг: 0 / 0
VBA, бред
    #38070750
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
taaamerlan,

У тебя если устанавливается на False, то потом идет бесконечный цикл, поэтому такая ошибка, проверь i.
...
Рейтинг: 0 / 0
VBA, бред
    #38070755
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такие вещи надо делать не циклом, а имитацией скачков курсора в конец занятого ранга. Как все любят эти циклы - самые неэффективные структуры.
...
Рейтинг: 0 / 0
VBA, бред
    #38073135
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Change = True
 i = 3
 Do
 If Worksheets("Лист1").Range("A" & i).Value = "" Then
 Change = False
 End If
 i = i + 1
 Loop While Change = True Or i < 100



вместо этого поставь

Код: vbnet
1.
i = Cells(Rows.Count, 1).End(xlUp).Row + 1
...
Рейтинг: 0 / 0
VBA, бред
    #38073139
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТакие вещи надо делать не циклом
Ну и показал бы как это делается!!
...
Рейтинг: 0 / 0
VBA, бред
    #38078378
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex77755авторТакие вещи надо делать не циклом
Ну и показал бы как это делается!!

Запиши макро: нажми Ctrl + Right Arrow и увидишь. Аналогично Left, Up, Down...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA, бред
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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