[英]Excel VBA userform. Add data into a new row, below headers
我正在尝试在标题下方插入新行,以插入Userform的数据。
我当前的代码在第4行中添加了新数据,但没有在第4行中添加新行。它正在覆盖第4行中的数据。
Private Sub KnopOpslaan_Click()
Dim ws As Worksheet
Set ws = Worksheets("Data")
'Regel invoegen op rij 4.
If Range("a4") <> "" Then
Rows("4:4").Select
Selection.Insert shift:=xlDown
End If
'Formulier doorzetten naar het excel bestand.
ws.Cells(4, 1).Value = VoorraadOpnameTA.Datumbox.Value
ws.Cells(4, 2).Value = VoorraadOpnameTA.Tijdbox.Value
ws.Cells(4, 3).Value = VoorraadOpnameTA.Opnemer.Value
End Sub
Selection.Insert shift:=xlDown
问题, Selection.Insert shift:=xlDown
此行。 替换为
Selection.Insert shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
这是完整的代码。
Dim ws As Worksheet
Set ws = Worksheets("Data")
'Regel invoegen op rij 4.
If Range("a4") <> "" Then
Rows("4:4").Select
Selection.Insert shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
'Formulier doorzetten naar het excel bestand.
ws.Cells(4, 1).Value = VoorraadOpnameTA.Datumbox.Value
ws.Cells(4, 2).Value = VoorraadOpnameTA.Tijdbox.Value
ws.Cells(4, 3).Value = VoorraadOpnameTA.Opnemer.Value
End If
在将数据写入第4行时,您已经对行号进行了硬编码。因此,其更新值总是在第4行中。 如果您实际上是在将Row插入Row4并将数据写入Row5,请尝试以下操作。 代码将在第4行下方插入行,并始终将数据插入第5行
Private Sub KnopOpslaan_Click()
Dim ws As Worksheet
Set ws = Worksheets("Data")
'Regel invoegen op rij 4.
If Range("a4") <> "" Then
Rows("4:4").Select
Selection.Insert shift:=xlDown
End If
'Formulier doorzetten naar het excel bestand.
ws.Cells(5, 1).Value = VoorraadOpnameTA.Datumbox.Value
ws.Cells(5, 2).Value = VoorraadOpnameTA.Tijdbox.Value
ws.Cells(5, 3).Value = VoorraadOpnameTA.Opnemer.Value
End Sub
最简单的方法是将数据格式化为工作表上的表格,这使其成为一个列表对象,然后可以使用
ws.ListObjects("name").ListRows.Add 1
无论表格实际在表中的什么位置,这都会在标题下方插入一行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.