【发布时间】:2012-11-20 11:40:58
【问题描述】:
我是 Excel 中的 VBA 新手,我有一个基本的用户表单,可以将数据放入工作表中。表格中的数据将在单元格 B13 到 G13 中输入,之后的所有其他条目都应在下一行完成,例如B14-G14。
我已经有了这段代码,但是它没有将数据输入到正确的单元格中,而是在同一行重复输入...
Private Sub CommandButton1_Click()
Dim lngWriteRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
lngWriteRow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row
If lngWriteRow < 13 Then lngWriteRow = 13
ws.Range("B" & lngWriteRow) = TextBox1.Value
ws.Range("C" & lngWriteRow) = TextBox2.Value
ws.Range("D" & lngWriteRow) = TextBox3.Value
ws.Range("E" & lngWriteRow) = ComboBox1.Value
ws.Range("F" & lngWriteRow) = TextBox4.Value
ws.Range("G" & lngWriteRow) = ComboBox2.Value
End Sub
我将如何实现这一目标? (下面几行已经有数据了)
提前致谢
【问题讨论】:
-
您应该删除其他问题并在此处进行编辑。你对我给你的解决方案有什么问题?它完成了您最初的要求 - 那么,发生了什么变化?!
-
@Jook,实现类似
NextRow = Cells(Rows.Count, "A").End(xlUp).Row + 1的东西,它应该总是转到下一行。 -
@t.thielemans 我认为他的问题不在于下一行,而是从第 13 行开始,然后转到下一行以获取更多数据。
-
@Jook,我认为他的意思是如果他运行它将填充第 13 行(或他从任何行开始)的列,但如果他再次运行它,它将覆盖当前数据,因为起始位置是固定的。所以我看到它的方式:他运行这个第 13 行被填满,再次运行它,第 14 行被填满,等等。
标签: vba excel excel-2010