每次我在表单中输入新日期时,我的用户表单都会覆盖同一行。我希望将数据插入行中(" A6")等等。代码我用来在工作表中写日期。
Private Sub Commandok_Click()
Dim RowCount As Long
RowCount = Worksheets("Sheet3").Range("A1").Offset(5).CurrentRegion.Rows.Count
' Write data to worksheet
With Worksheets("Sheet3").Range("A1")
.Offset(RowCount, 0).Value = Me.task_done.Value
.Offset(RowCount, 1).Value = Me.task_name.Value
.Offset(RowCount, 2).Value = DateValue(Me.task_date.Value)
.Offset(RowCount, 5).Value = Me.task_note.Value
.Offset(RowCount, 6).Value = Me.task_additional.Value
End With
End Sub
答案 0 :(得分:2)
修改强>
只需使用它来获取最后一行:
RowCount = Worksheets("Sheet3").Range("A" & Worksheets("Sheet3").Rows.Count).End(xlUp).Row
答案 1 :(得分:0)
根据您的屏幕截图判断(而不是根据当前代码隐含的内容),我认为您想要:
Private Sub Commandok_Click()
Dim NewRow As Long
With Worksheets("Sheet3")
NewRow = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
' Write data to worksheet
.Cells(NewRow, "A").Value = Me.task_done.Value
.Cells(NewRow, "B").Value = Me.task_name.Value
.Cells(NewRow, "C").Value = DateValue(Me.task_date.Value)
.Cells(NewRow, "F").Value = Me.task_note.Value
.Cells(NewRow, "G").Value = Me.task_additional.Value
End With
End Sub
使用CurrentRegion.Rows.Count
找出要写的位置通常是一个坏主意,因为如果CurrentRegion
没有从第1行开始,那会让您感到困惑,在您的特定情况下,CurrentRegion
看起来在工作表中延伸了很长时间,因此您的RowCount
可能是一个较大的数字。