Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/16: Рейтинг темы: голосов - 16, средняя оценка - 4.75
La_Suerte
1

Найти пустую строку на листе и записать туда данные

01.10.2012, 19:57. Показов 3169. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создаю форму для ввода иностранных слов.
Надо обговорить: очень мало понимаю в этом, поэтому не судите строго. Искала информацию в интернете, вот что пока выходит.
Форма готова, нужно написать код.
Код для кнопки "Добавить".
Необходимо, чтобы он находил пустую строку начиная с 1355 и заносил данные туда, потом очищал все поля и закрывался, на данный момент он ругается, что нет оператора For для Next.

Visual Basic
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
Private Sub Добавить_Click()
  For i = 1355 To 10000 Step 1
   If Worksheets("Рабочий").Cells(i, 2) = "" Then
      TextBox1.Value = Worksheets("Рабочий").Cells(i, 2).Value = TextBox1.Value
      TextBox2.Value = Worksheets("Рабочий").Cells(i, 3).Value = TextBox2.Value
      TextBox3.Value = Worksheets("Рабочий").Cells(i, 4).Value = TextBox3.Value
      ComboBox1.Value = Worksheets("Рабочий").Cells(i, 5).Value = ComboBox1.Value
      ComboBox2.Value = Worksheets("Рабочий").Cells(i, 6).Value = ComboBox2.Value
      TextBox4.Value = Worksheets("Рабочий").Cells(i, 7).Value = TextBox4.Value
      ComboBox3.Value = Worksheets("Рабочий").Cells(i, 8).Value = ComboBox3.Value
     If ComboBox1.Text = "Глагол" Then
        ComboBox4.Value = Worksheets("Рабочий").Cells(i, 9).Value = ComboBox4.Value
    End If
   Else: Next i
  For m = 176 To 10000 Step 1
    If Worksheets("Глаголы").Cells(m, 1) = "" Then
      If ComboBox3.Text = "Особый глагол" Then
        If TextBox1.Value <> "" Then Worksheets("Глаголы").Cells(m, 1).Value = TextBox1.Value
        If TextBox2.Value <> "" Then Worksheets("Глаголы").Cells(m, 2).Value = TextBox2.Value
        If TextBox5.Value <> "" Then Worksheets("Глаголы").Cells(m, 3).Value = TextBox5.Value
        If TextBox6.Value <> "" Then Worksheets("Глаголы").Cells(m, 4).Value = TextBox6.Value
        If TextBox7.Value <> "" Then Worksheets("Глаголы").Cells(m, 5).Value = TextBox7.Value
        If ComboBox4.Value <> "" Then Worksheets("Глаголы").Cells(m, 6).Value = ComboBox4.Value
    End If
   Else: Next m
   TextBox1.Text = ""
   TextBox2.Text = ""
   TextBox3.Text = ""
   TextBox4.Text = ""
   TextBox5.Text = ""
   TextBox6.Text = ""
   TextBox7.Text = ""
   ComboBox1.Text = ""
   ComboBox2.Text = ""
   ComboBox3.Text = ""
   ComboBox4.Text = ""
  Hide
End Sub

Заранее благодарна за любую помощь!!
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.10.2012, 19:57
Ответы с готовыми решениями:

Макрос, копирование ячеек в пустую строку на другом листе
доброго времени суток, господа! на листе 1 имеются ячейки для заполнения(анкета). требуется при...

Копирование некоторых ячеек с одного листа в первую пустую строку на другом листе
Добрый день! У меня такая задача, есть лист Anketa и лист MB. Лист Anketa это анкета для...

Как открыть существующий файл и записать туда данные
Подскажите, пожалуйста. Есть вордовской файл, как шаблон, в котором есть символы, такие как...

Как в DataGridView записать программно данные, добавить строку и вывести туда итог
Доброе время суток! Подскажите пожалуйста как сделать следующее У меня вывело результат из mysql...

2
Заблокирован
02.10.2012, 07:32 2
Цитата Сообщение от La_Suerte Посмотреть сообщение
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
For i = 1355 To 10000 Step 1
  If Worksheets("Рабочий").Cells(i, 2) = "" Then
    TextBox1.Value = Worksheets("Рабочий").Cells(i, 2).Value = TextBox1.Value
    TextBox2.Value = Worksheets("Рабочий").Cells(i, 3).Value = TextBox2.Value
    TextBox3.Value = Worksheets("Рабочий").Cells(i, 4).Value = TextBox3.Value
    ComboBox1.Value = Worksheets("Рабочий").Cells(i, 5).Value = ComboBox1.Value
    ComboBox2.Value = Worksheets("Рабочий").Cells(i, 6).Value = ComboBox2.Value
    TextBox4.Value = Worksheets("Рабочий").Cells(i, 7).Value = TextBox4.Value
    ComboBox3.Value = Worksheets("Рабочий").Cells(i, 8).Value = ComboBox3.Value
    If ComboBox1.Text = "Глагол" Then
      ComboBox4.Value = Worksheets("Рабочий").Cells(i, 9).Value = ComboBox4.Value
    End If
  Else: Next i
1-я ошибка - нету End If для If Worksheets("Рабочий").Cells(i, 2) = "" Then
Отсюда он ругается, что нет оператора For для Next

2-я: Причём сразу бросившаяся в глаза - Else: Next i
Возможно, в этом есть какой-то логический смысл, но гораздо правильнее использовать Exit For для выхода из цикла по условию.

3-я:
Visual Basic
1
TextBox1.Value = Worksheets("Рабочий").Cells(i, 2).Value = TextBox1.Value
- Вы уверены, что хотите видеть в TextBox1.Value результат сравнения его содержимого с ячейкой листа, т.е. FALSE или TRUE?
Может быть так будет правильнее -
Visual Basic
1
TextBox1.Value = Worksheets("Рабочий").Cells(i, 2).Value
0
1702 / 189 / 19
Регистрация: 20.11.2011
Сообщений: 281
02.10.2012, 08:41 3
Лучше пустую строку искать не в цикле:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Public Sub www()
Dim c As Range
    On Error Resume Next
    Set c = [b1355:b10000]..SpecialCells(4)(1) ' на случай, если есть пропуски
    If Err Then Err.Clear: _
    Set c = [b10001].End(xlUp)(2)
    c = TextBox1
    c(,2)=TextBox2
    c(,3)=TextBox3
...
End Sub
0
02.10.2012, 08:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2012, 08:41
Помогаю со студенческими работами здесь

Необходимо записать в пустую строку число (ASCII код)
Следующая программа должна во введенной строке заменять все согласные буквы на гласные (это мне...

Как сделать проверку на пустую строку или на пустую ячейку
Всем доброго вечера. Появился вопрос, как сделать проверку на пустую строку или на пустую ячейку?...

На листе Excel выбрать наиболее заполненную строку и записать ее в другой документ
У меня возник вопрос. Как на листе Excel выбрать наиболее заполненную строку и записать ее в другой...

Найти пустую ячейку и записать в нее текущую дату
Помогите написать макро который бы в таблице (колонка дата) находил пустую клетку и добавлял...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru