[英]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.