从特定单元格添加 excel 用户窗体数据



我是VBA的新手,我正在Excel 2010 VBA中创建客户数据库。我已经在 excel 工作表中输入了一些从 A1 到 C50 的值,但是从 D4 到 G50 是空的。当我尝试使用UserForm输入数据时,它会将数据添加到D51,E51,F51和G51,但我希望从D4,E4,F4和G4输入数据,然后再次依此类推到下一行。请帮忙!

代码如下:

Private Sub Cmdcreate_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("My.Sheet")
'''find  first empty row in database
''iRow = ws.Cells(Rows.Count, 1)
''  .End(xlUp).Offset(1, 0).Row
'revised code to avoid problems with Excel tables in newer versions
iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
    SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1

'check for a Name
If Trim(Me.TextBox1.Value) = "" Then
  Exit Sub
End If
'copy the data to the database
ws.Cells(iRow, 5).Value = ComboBox1.Value
ws.Cells(iRow, 6).Value = TextBox1.Value
ws.Cells(iRow, 7).Value = TextBox2.Value
'clear the data
TextBox1.Value = ""
TextBox2.Value = ""
ComboBox1.Value = ""
If ComboBox1.Value = True Then Cells(iRow, 5).Value = ComboBox1
End Sub

我认为使用以下代码,您可以在整个工作表中搜索输入到单元格的任何值,并查找功能在A50单元格中找到该值并将该行存储为50。这就是为什么你的其他代码从 51 开始。

iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1

如果你想坚持使用查找功能,你可以将"单元格"更改为只包含D列的范围,否则你可以使用以下代码来识别最后一行

iRow = ws.range("D1").End(xlDown).Row

最新更新