Используется ли do до лучших значений для смещения значения? - PullRequest
0 голосов
/ 20 мая 2018

Что это должно делать: когда пользователь вводит значение для ttxt в пользовательской форме и нажимает кнопку «добавить», он сначала проверит, является ли значение пустым, и если это так, то введет входное значениепользователь - если он не пустой, он переместится на 2 столбца вправо и введет значение там.Это будет продолжать добавлять значение справа один раз при каждом нажатии кнопки.Я не уверен, как это сделать.

'Starts on column G1
Range("G1").End(xlUp).Offset(2, 0).Select 

Do Until ActiveCell.Value = ttxt.Value
If ActiveCell.Value = "" Then
ActiveCell.Value = Me.ttxt
Else
'Offsets to the right 2 columns to enter another value if previous value is 
'not empty.
ActiveCell.Offset(0, 2).Value = Me.ttxt
End If
Loop
Me.ttxt = ""

См. Ниже

Private Sub addbtn_Click()

Worksheets("Sheet1").Activate

Dim r As Range
Set t = Range("F1").End(xlUp).Offset(2, 0)
Set r = Range("G1").End(xlUp).Offset(2, 0)
Do Until r.Value = "" And t.Value = ""
Set r = r.Offset(, 2) 'Moves over 2 columns
Set t = t.Offset(, 2) 'Moves over 2 columns
Loop
'Inputs values
r.Value = Me.ttxt
t.Value = Me.atxt & ", " & Me.xtxt
With Me.ListBox1
.AddItem
.List(i, 0) = Me.ttxt
.List(0, i) = Me.atxt & ", " & Me.xtxt
i = i + 1
End With
'Clears out userform
Me.ttxt = ""
Me.atxt = ""
Me.xtxt = ""
End Sub

Так что это полный код для кнопки «Добавить».Таким образом, этот код, как вы знаете, добавляет пользовательские вводимые значения в столбцы, как и предполагалось.У меня также есть список на пользовательской форме.Всякий раз, когда человек добавляет значения на лист, я хочу, чтобы значения также помещались в список.Текущий код добавляет первое значение, а любое значение после этого просто заменяет первое значение в списке.Надеюсь, вы понимаете, что я пытаюсь сказать.

Я хочу, чтобы значения добавлялись в список всякий раз, когда я добавляю их, как это делается на листе.

1 Ответ

0 голосов
/ 20 мая 2018
Sub AlternateColumnsEmpty()
'Starts on column G1
  Dim r As Range
  Set r = Range("G3")
  If r.Value = "" Then
    r.Value = Me.ttxt
  Else
    Cells(r.Row, Columns.Count).End(xlToLeft).Offset(, 2).Value = Me.ttxt
  End If
  Me.ttxt = ""
End Sub

Sub AlternateColumnsHaveData()
'Starts on column G1
  Dim r As Range
  Set r = Range("G3")
  Do Until r.Value = ""
    Set r = r.Offset(, 2)
  Loop
  r.Value = Me.ttxt
  Me.ttxt = ""
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...