我只想使用命令按钮将用户窗体中的多个数据输入到我的excel工作表中。
我已经完成了从用户表单向excel工作表中输入数据的操作,但是问题是我不知道如何自动移动到下一个列并在那里输入数据。
Private Sub AddLoad_Click()
Dim wks As Worksheet
Dim AddNew As Range
Set wks = ActiveSheet
Set AddNew = wks.Range("L29:L39").End(xlUp).Offset(1, 0)
AddNew.Offset(0, 0).Value = txtdist
AddNew.Offset(1, 0).Value = txttrib
AddNew.Offset(2, 0).Value = txtpipeod
AddNew.Offset(3, 0).Value = txtpipethick
AddNew.Offset(4, 0).Value = txtpipeins
AddNew.Offset(5, 0).Value = txtctwidth
AddNew.Offset(6, 0).Value = txtctheight
AddNew.Offset(7, 0).Value = txtgl
AddNew.Offset(8, 0).Value = txtat
AddNew.Offset(9, 0).Value = txtaf
AddNew.Offset(10, 0).Value = txtaseis
End Sub
我希望有人可以帮助我开发此代码,以便当我按下“添加负载”命令按钮时,当前日期将保存在工作表中特定范围的第1列中,然后删除。然后,我要输入的下一个数据将保存在相同范围的第2列中。
答案 0 :(得分:0)
问题:
您要使用此行Set AddNew = wks.Range("L29:L39").End(xlUp).Offset(1, 0)
查找下一个空白列,但这不是正确的方法。
应该是
Set AddNew = wks.Range("L29").End(xlToLeft).Offset(0, 1)
简要说明:这将转到第29行的“结束单元格”,并移至该行中最后一个填充的单元格。并使用1列的偏移量将下一个单元格分配给AddNew
。
也许您可以尝试以下操作:
Private Sub AddLoad_Click()
Dim wks As Worksheet
Dim AddNew As Range
Set wks = ActiveSheet
Set AddNew = wks.Cells(29, wks.Columns.count).End(xlToLeft).Offset(0, 2)
If Not AddNew.Column > 12 Then Set AddNew = wks.Range("L29")
AddNew.Offset(0, 0).Value = txtdist
AddNew.Offset(1, 0).Value = txttrib
AddNew.Offset(2, 0).Value = txtpipeod
AddNew.Offset(3, 0).Value = txtpipethick
AddNew.Offset(4, 0).Value = txtpipeins
AddNew.Offset(5, 0).Value = txtctwidth
AddNew.Offset(6, 0).Value = txtctheight
AddNew.Offset(7, 0).Value = txtgl
AddNew.Offset(8, 0).Value = txtat
AddNew.Offset(9, 0).Value = txtaf
AddNew.Offset(10, 0).Value = txtaseis
End Sub