Vba 每次用户单击命令按钮时,在excel中插入新行数据

Vba 每次用户单击命令按钮时,在excel中插入新行数据,vba,excel,Vba,Excel,我已经开始学习VBA编程,并考虑创建一个小应用程序,将学生详细信息插入Excel表格。 在一个名为“Main”的Excel工作表中,我创建了一个表单来接受用户输入,在另一个名为“Database”的工作表中,我尝试在用户每次单击按钮时插入一行记录 我成功地插入了一行数据,即数据库工作表中的第一行数据,但我的问题是-一旦用户输入记录并再次单击按钮,我想转到工作表中的下一行。第三次也是这样,以此类推 我的代码是: Private Sub CommandButton1_Click() Dim i As

我已经开始学习VBA编程,并考虑创建一个小应用程序,将学生详细信息插入Excel表格。 在一个名为“Main”的Excel工作表中,我创建了一个表单来接受用户输入,在另一个名为“Database”的工作表中,我尝试在用户每次单击按钮时插入一行记录

我成功地插入了一行数据,即数据库工作表中的第一行数据,但我的问题是-一旦用户输入记录并再次单击按钮,我想转到工作表中的下一行。第三次也是这样,以此类推

我的代码是:

Private Sub CommandButton1_Click()
Dim i As String
Dim j As String
Dim k As String
Dim l as integer
i = Sheets("Main").Cells(1, 2).Value
j = Sheets("Main").Cells(2, 2).Value
k = Sheets("Main").Cells(3, 2).Value
Sheets("Main").Cells(1, 2).Value = ""
Sheets("Main").Cells(2, 2).Value = ""
Sheets("Main").Cells(3, 2).Value = ""
l=2
Sheets("Database").Cells(l, 1).Value = i
Sheets("Database").Cells(l, 2).Value = j
Sheets("Database").Cells(l, 3).Value = k
End Sub

每次用户单击命令按钮时,我想将l的值增加1,以便将新记录插入到数据库工作表的下一行。

对所需内容感到困惑。用户如何输入下一行?同样,在代码的顶部(将值分配给i、j和k),您正在迭代,实际上是复制一列,而不是一行

我会尽力回答你剩下的问题。要使VBA知道如何将数据复制到下一行,可以执行以下操作:

Sub test()
i = "John"
j = "25"
k = "Male"
lastRow = Range("A" & Rows.Count).End(xlUp).Row
Cells(lastRow + 1, 1) = i
Cells(lastRow + 1, 2) = j
Cells(lastRow + 1, 3) = k
End Sub

试着连续运行几次,你就会看到它是如何工作的。如果我误解了,请澄清您的要求。

我们可以通过以下方式获得特定列的最后一行:-

dstRw=Sheets(2).范围(“A”和Rows.Count).结束(xlUp).行+1

谢谢:-
尼蒂什·高拉夫

非常感谢……它成功了。我使用lastRow=Range(“A”&Rows.Count).End(xlUp).Row来获取最后一行计数,并使用与Cell方法相同的参数。很高兴能够提供帮助,请投票支持我的答案,因为您觉得它很有用:)
Private Sub CommandButton1_Click()
Dim i As String
Dim j As String
Dim k As String
Dim m As String
i = Sheets("Main").Cells(1, 2).Value
j = Sheets("Main").Cells(2, 2).Value
k = Sheets("Main").Cells(3, 2).Value
m = Sheets("Main").Cells(4, 2).Value
Sheets("Main").Cells(1, 2).Value = ""
Sheets("Main").Cells(2, 2).Value = ""
Sheets("Main").Cells(3, 2).Value = ""
Sheets("Main").Cells(4, 2).Value = ""
dstRw = Sheets(2).Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("Database").Cells(dstRw, 1).Value = i
Sheets("Database").Cells(dstRw, 2).Value = j
Sheets("Database").Cells(dstRw, 3).Value = k
Sheets("Database").Cells(dstRw, 4).Value = m
End Sub