我目前有Excel 2010电子表格。我设计了一个表单,我希望允许用户在表单中输入日期,然后将其输入到工作表中。
我的第一个条目是我的表格上的“txtDate”,我希望将其输入到单元格J7,其中“txtTime”形式的下一个数据进入单元格K7,然后其他数据进入行中的其他单元格 - L7 ,M7,N7等等...一旦使用表格上的按钮提交此单元格,输入数据,然后下次使用表单时,数据将进入下一行,第8行,然后第二排等等......
我在互联网上的代码下面找到了示例,示例显示它在单元格A2中开始。我看不到A2的提及,所以我想知道如何编辑代码以在单元格J7中启动。
'Copy input values to sheet.
Dim lRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Animals")
lRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
With ws
.Cells(lRow, 1).Value = Me.cboClass.Value
.Cells(lRow, 2).Value = Me.txtGivenName.Value
.Cells(lRow, 3).Value = Me.txtTagNumber.Value
.Cells(lRow, 4).Value = Me.txtSpecies.Value
.Cells(lRow, 5).Value = Me.cboSex.Value
.Cells(lRow, 6).Value = Me.cboConservationStatus.Value
.Cells(lRow, 7).Value = Me.txtComment.Value
以下是我在2015年3月27日的答案后的代码:
Dim lRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Pursue")
lRow = Application.WorksheetFunction.Max(ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row, 7)
With ws
.Cells(lRow, 10).Value = Me.dateBox.Value
etc....
答案 0 :(得分:1)
.Cells(lRow, 1).Value
(等等)是什么引用了什么单元格。第一个参数说明了单元格所在的行,第二个是它所在的列。当明确地引用单元格时,我认为没有理由这样做,但主要是因为当你进行循环时,例如每次迭代时lRow
加1,以便记下一列。
由于lRow
是使用lRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
决定的,因此它始终是A列中第一个空行的编号。要更改它以返回J列中的第一个空行,您需要更改Cells
到10中的1(J是字母表中的第10个字母。为了让它在任何时候都没有比第7行更进一步,我添加了Max
- 声明:
lRow = Application.WorksheetFunction.Max(ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row, 7)
要让sub在With
- 语句中向前写入J列,您需要更改列引用以反映这一点。目前它写入第1,2,3等列,你希望它写入第10,11,12等列.I.e。类似的东西:
With ws
.Cells(lRow, 10).Value = Me.cboClass.Value
.Cells(lRow, 11).Value = Me.txtGivenName.Value
.Cells(lRow, 12).Value = Me.txtTagNumber.Value
etc.