2013-03-13 6 views
0

У меня есть UserForm, который собирается отправлять данные из полей в столбцы A, B и C, но мне нужно, чтобы он перемещался вниз и заполнял следующую пустую строку каждый раз, когда пользователь попадает в submit.Увеличение строки ячеек в excel

Это то, что я до сих пор, я не знаю, что я бы поставил в сделать так, она будет идти от A2/B2/C2 до A3/B3/C3 и т.д.

Private Sub Submit_Click() 
    Dim LastRow As Object 

    Set LastRow = Sheet1.Range("a65536").End(xlUp) 

    Sheet1.Range("A2").Value = MatchNum.Text 
    Sheet1.Range("B2").Value = TeamNum.Text 
    Sheet1.Range("C2").Value = AllianceTeamNum.Text 

    MsgBox "One record written to Sheet1" 

End Sub 

Я полный новичок в Visual Basic (около 1 часа опыта), и было бы неплохо, если бы решение было максимально простым. Любая помощь приветствуется!

+0

Решение с участием наименьшее количество изменений в текущий код, кажется, каким-то образом использовать этот красивый вид 'LastRow' объекта ; который в настоящее время не используется ни для чего, кроме как для зависания какой-либо памяти. Вы пытались включить «LastRow» в три диапазона, которые заполняются? – bernie

+0

Если вы не против того, чтобы записи находились в обратном порядке, вы можете просто вставить запись в верхнюю часть, сдвинув все вниз. Сохраняет, какую строку писать тоже. Вероятно, не так быстро, как добавить его на дно. – NickSlash

ответ

3

Try ниже код:

Private Sub Submit_Click() 
    With Sheet1 
     .Select 

     Dim LastRow As Long 
     LastRow = .Range("A65536").End(xlUp).Row + 1 

     .Range("A" & LastRow).Value = MatchNum.Text 
     .Range("B" & LastRow).Value = TeamNum.Text 
     .Range("C" & LastRow).Value = AllianceTeamNum.Text 

    End With 
    MsgBox "One record written to Sheet1" 

End Sub 
-1

Попробуйте это:

Dim start As Integer 

Private Sub CommandButton1_Click() 

    Dim LastRow As Object 

    Set LastRow = Sheet1.Range("a65536").End(xlUp) 

    Sheet1.Range("A" & start).Value = "a" 
    Sheet1.Range("B" & start).Value = "b" 
    Sheet1.Range("C" & start).Value = "c" 

    MsgBox "One record written to Sheet1" 

    start = start + 1 

End Sub 

Private Sub UserForm_Initialize() 
    start = 2 
End Sub 
+0

Как это относится к части «пустой строки» вопроса? –

Смежные вопросы