如何创建数据条目,以允许使用UserForm

时间:2019-09-16 09:06:14

标签: excel vba userform

我只想使用命令按钮将用户窗体中的多个数据输入到我的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列中。

1 个答案:

答案 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