我试图在标题下面插入一个新行,以插入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发布于 2016-01-25 09:05:31
在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发布于 2016-01-25 09:08:54
在将数据写入第4行时,要对行号进行硬编码。因此,它的更新值总是在Row4中。如果您实际上正在考虑在Row4下面插入行并将数据写入Row5,那么请尝试如下。代码将在Row4下面插入行,并始终将数据插入到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发布于 2016-01-25 09:09:48
最简单的方法是将数据格式化为工作表上的表,这使其成为一个listobject,然后可以使用
ws.ListObjects("name").ListRows.Add 1这将插入在标头下方的一行,而不管表在工作表上的实际位置。
https://stackoverflow.com/questions/34988245
复制相似问题