Atipos Ответов: 1

Как я могу увеличить позицию, в которую вставляется текст в ячейку?


Создав VBA с 2 текстовыми полями и 3 кнопками OptionButton, я хотел бы при нажатии кнопки "Сохранить" ввести содержимое внутри ячеек Excel.

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

Теперь мой код:

If Me.TextBox1.Text = "" Then
MsgBox ("Cannot Be Empty!")
Else
Range ("A3").Value = TextBox1.Text
End If
If Me.TextBox2.Text= "" Then
MsgBox ("Cannot Be Empty!")
Else
Range ("B3").Value = TextBox2.Text
End If


Что я уже пробовал:

Private Sub CommandButton1_Click()
Dim lRow As Long
If Me.TextBox1.Text = "" Then
    MsgBox ("Cannot Be Empty!")
Else
    For lRow = 3 To 100
        Worksheets("Sheet1").Range("A" & lRow).Value = TextBox1.Text
    Next lRow
End If
If Me.TextBox2.Text = "" Then
    MsgBox ("Cannot Be Empty!")
Else
    For lRow = 3 To 100
        Worksheets("Sheet1").Range("B" & lRow).Value = TextBox2.Text
    Next lRow
End If
End Sub


Я тоже пытался:

Range ("A3").Value= Range ("A3").Value + 1

Richard MacCutchan

в чем именно заключается проблема?

Atipos

Я хотел бы иметь возможность вставлять больше данных в большее количество ячеек, в прогрессии.

Экс.:
Текстовое Поле Textbox1: Здравствуйте!
TextBox2: Тест
Нажмите кнопку Сохранить;

За исключением привета в ячейке А3 и теста в ячейке В3,

Я хотел бы вставить позже
Текстовое Поле Textbox1: Тест
TextBox2: LoL
Нажмите кнопку Сохранить;

За исключением теста в ячейке А4 и Лол в ячейке В4.

Richard MacCutchan

Так что же на самом деле мешает вам сделать это?

Atipos

Попробовав несколько способов кода, но никто не дал мне такого результата.
Дело в том, что диапазон ("А3") должен увеличиваться, когда я нажимаю кнопку сохранения.

1 Ответов

Рейтинг:
9

CHill60

Вы могли бы использовать Диапазон.Свойство смещения[^]
Следите за тем, к какому столбцу вы подходите, и просто увеличьте смещение столбца на это число. Это адрес, который вы хотите увеличить, а не значение
Напр.

If Me.TextBox1.Text = "" Then
    MsgBox ("Cannot Be Empty!")
Else
    For lRow = 3 To 100
        Worksheets("Sheet1").Range("A1").Offset(lRow - 1, 0).Value = TextBox1.Text
    Next lRow
End If
If Me.TextBox2.Text = "" Then
    MsgBox ("Cannot Be Empty!")
Else
    For lRow = 3 To 100
        Worksheets("Sheet1").Range("A1").Offset(lRow - 1, 1).Value = TextBox2.Text
    Next lRow
End If

Обратите внимание на использование lRow - 1 и нет lRow . потому что мы есть компенсация с нашей начальной точки, не используя абсолютный адрес.

Вы также можете использовать автозаполнение [^] метод здесь вместо петель