2016-10-03 7 views
-1

им своего рода новый с Excel VBA, мне нужно некоторые корректировки с этим, так как им получить ошибку, короче я не могу добавить любые данные в моей следующей строки в Excel, используя UserFormExcel VBA Добавление Добавление запись на следующую строку

Вот мой код

Private Sub CommandButton1_Click() 
Dim ssheet As Worksheet 


Set ssheet = ThisWorkbook.Sheets("Sheet1") 

nr = ssheet.Cells(Rows.Count, 1).End(x1Up).Row + 1 

ssheet.Cells(nr, 1) = CDate(Me.Label1) 
ssheet.Cells(nr, 2) = Me.ComboBox1 
ssheet.Cells(nr, 3) = Me.ComboBox2 

End Sub 
+1

Try 'пг = ssheet.Cells (ssheet.Rows.Count, 1) .END (x1Up) .Row + 1' вместо 'nr = ssheet.Cells (Rows.Count, 1) .End (x1Up) .Row + 1'. Также попробуйте явно указать код. Итак, используйте 'ssheet.Cells (nr, 2) = UserForm1.ComboBox1' (или что бы то ни было имя) вместо' ssheet.Cells (nr, 2) = Me.ComboBox1'. Это по той же причине, что и вы используете 'ThisWorkbook' вместо' ActiveWorkbook'. Тем не менее, один вопрос: является ли «UserForm» все еще отображаться/загружаться при запуске кода? В противном случае форма будет очищена, а 'ComboBox1' и все остальные поля будут закрыты. – Ralph

+0

Какая ошибка вы получаете? – Brian

+1

xlUp. хЬ. L. Not 1, L. Копирование кода с монитора соседа студента может привести к ошибкам, подобным этому ... – vacip

ответ

0

Пожалуйста, попробуйте это:

Private Sub CommandButton1_Click() 
    Dim ssheet As Worksheet 

    Set ssheet = ThisWorkbook.Sheets("Sheet1") 

    nr = ssheet.Range("A1048576").End(xlUp).Row + 1 

    ssheet.Cells(nr, 1) = 1 
    ssheet.Cells(nr, 2) = 2 
    ssheet.Cells(nr, 3) = 3 
    End Sub 
+2

Я не думаю, что 'Range (" A1048576 ")' лучше, чем 'Cells (Rows.Count, 1)'. 'xlUp', конечно, лучше, чем' x1Up'. – vacip

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