如何在用户窗体的特定单元格上设置我的输入数据?

时间:2019-04-30 18:56:51

标签: excel vba userform

我想开始从特定单元格添加数据,然后在另一个单元格停止。从I7:I10到T7:T10。 但是我想从用户表单中输入数据。但是,每当我输入数据时,都表示我在16,000 Cell上。

我有两个数据集,并且用户窗体中的一个选项卡运行良好,它将按行输入数据。但是对于其他选项卡,我希望它在下一列输入它。顺便说一下,我的数据低于I7。但是有些领域是空白的,有些领域是有数据的。 Userform中的一个标签将转到另一个名为Employee的工作表,另一个将转到TestCal。

Private Sub CBSave_Click()

Dim lrEmp as Long
Dim lrCal as Long

'This part work fine
lrEmp = Sheets("Employee").Range("A" & Rows.Count).End(xlUp).Row
With Sheets("Employee")
    .Cells(lrEmp + 1, "A").Value = tbEmpID.Text
    .Cells(lrEmp + 1, "B").Value = tbName.Text
    .Cells(lrEmp + 1, "C").Value = tbLast.Text
End With

'This is the part I am having trouble with
lcCal = Sheets("TestCal").Range("Sales") .End(xlToLeft).Column
With Sheets("TestCal")
     .Cells(lrCal, "I").Value = tbApple.Text
     .Cells(lrCal + 1, "I").Value = tbOrange.Text
     .Cells(lrCal + 2, "I").Value = tbBanana.Text
End With

End Sub

我认为我将第一个列设置为错误,如何设置下一个数据条目将在右边的位置。目前,由于某种原因,数据输入一直一直输入到16,000个单元。

**忘记提及这一点,tbApple,tbOrange和tbBanana都在同一列中。我想像这样与他们一起进入下一专栏。

我希望我有道理。谢谢。

2 个答案:

答案 0 :(得分:0)

如果要在最后使用的列的右侧找到该列,请尝试以下操作:两张纸,一张名为Testcal,另一张名为Main。

Private Sub TestCal()
lccal = Sheets("TestCal").Cells(1, Columns.Count).End(xlToLeft).Column + 1
Sheets("Main").Cells(1, 1) = lccal
End Sub

这将返回您在Testcal中选择的任何行的最右边使用的列的右边的列。

答案 1 :(得分:0)

不确定7到10来自哪里,也许7是标题?

'This is the part I am having trouble with
lcCal = Sheets("TestCal").Cells(7,columns.count).End(xlToLeft).Column + 1
With Sheets("TestCal")
     .Cells(8, lcCal).Value = tbApple.Text
     .Cells(9, lcCal).Value = tbOrange.Text
     .Cells(10, lcCal).Value = tbBanana.Text
End With

End Sub