我正在尝试在标题下插入一个新行,以插入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
答案 0 :(得分:0)
此行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
这是完整的代码。
result
答案 1 :(得分:0)
在将数据写入第4行时,您已对行编号进行了硬编码。因此,其更新值始终为Row4。如果您实际上是在Row4下面插入Row并将数据写入Row5,请尝试以下操作。代码将在Row4下面插入Row并始终将数据插入Row5
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
答案 2 :(得分:0)
最简单的方法是将数据格式化为工作表上的表格,这使得它成为列表对象,然后可以使用
ws.ListObjects("name").ListRows.Add 1
这会在标题下方插入一行,无论表格实际位于表格的哪个位置。