我有这个代码,但我想直接在excel中的“名称”下添加名称等,但是至今它只添加它在第1行。有人可以帮我吗?如何在Excel VBA中的某个字段下直接添加值?
例如,当我输入名称框时,无论“我的名字”在我的Excal表单中的哪个位置,我都希望该值直接在Excel中的“Name”下。
我是新来的,这是我的第一个问题:)
'find first empty row in database
iRow = ws.Cells.Find(What:="Name", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
'check for a part number
If Trim(Me.TxtName.Value) = "" Then
Me.TxtName.SetFocus
MsgBox "Please enter a part number"
Exit Sub
End If
'copy the data to the database
'use protect and unprotect lines,
' with your password
' if worksheet is protected
With ws
' .Unprotect Password:="password"
.Cells(iRow, 1).Value = Me.TxtName.Value
.Cells(iRow, 2).Value = Me.TxtLocation.Value
.Cells(iRow, 3).Value = Me.TxtDate.Value
.Cells(iRow, 4).Value = Me.TxtQuantity.Value
' .Protect Password:="password"
End With
- 感谢。
是否使用'上的错误恢复Next'?如果iRow = 1,那么你发现的单元必须是0行,这显然不是这种情况,所以也许它没有找到“名称”。 –
@TimWilliams看着他的代码,irow故意不会是1,所以这不是问题(值总是会在单元格中带有“Name”的单元格,因此将数据放入的最小行是行2)。 –
@cor如果他正在使用'On Error Resume Next',那么'.find'的结果如果从未找到“name”,则结果为0,因此iRow将为1.从msdn:“如果没有,则此方法返回Nothing匹配被发现。“所以使用错误恢复接下来将irow留在1.我会说他必须在那里'错误',否则irow永远不能是1,因为没有'错误'的'.find'会抛出一个运行时错误if没有找到名称 – user1759942