首页 > 解决方案 > 输入数据时 VBA 跳过单元格

问题描述

我的 VBA 代码有问题,也许有人可以解释我在哪里犯了错误以及如何修复它。我的目标是创建 7 列而不跳过单元格。我有 7 个文本框,但并非每次输入数据时都必须填写所有文本框。在仅在名称文本框中添加数据时,它会创建新行,但是当仅添加姓氏时,它会跳过第一个空行并在名称条目下对角输入(如附件中所示)Excel img

当我想在其他文本框中添加条目时也会出现错误,输入的数据只是移动了。

Private Sub CommandButton1_Click()

   Dim LR As Long

   LR = Cells(Rows.Count, 1).End(xlUp).Row + 1

   Cells(LR, 1).Value = Name.Value
   Cells(LR, 2).Value = Surname.Value
   Cells(LR, 3).Value = Address.Value
   Cells(LR, 4).Value = Phone.Value
   Cells(LR, 5).Value = City.Value
   Cells(LR, 6).Value = Car.Value
   Cells(LR, 7).Value = Job.Value

   Name.Value = ""
   Surname.Value = ""
   Address.Value = ""
   Phone.Value = ""
   City.Value = ""
   Car.Value = ""
   Job.Value = ""


End Sub

标签: excelvbauserform

解决方案


您一直在寻找 A 列中的最后一行,这就是为什么它在 A 列的最后一行下方添加姓氏的原因。如果您想知道另一列的最后一行,则需要在 Rows.Count 之后更改 1入相应的号码。您也可以在一行中执行此操作,请看一下:

Private Sub CommandButton1_Click()

   Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = Name.Value
   Cells(Cells(Rows.Count, 2).End(xlUp).Row + 1, 2).Value = Surname.Value
   Cells(Cells(Rows.Count, 3).End(xlUp).Row + 1, 3).Value = Address.Value
   Cells(Cells(Rows.Count, 4).End(xlUp).Row + 1, 4).Value = Phone.Value
   Cells(Cells(Rows.Count, 5).End(xlUp).Row + 1, 5).Value = City.Value
   Cells(Cells(Rows.Count, 6).End(xlUp).Row + 1, 6).Value = Car.Value
   Cells(Cells(Rows.Count, 7).End(xlUp).Row + 1, 7).Value = Job.Value

   Name.Value = ""
   Surname.Value = ""
   Address.Value = ""
   Phone.Value = ""
   City.Value = ""
   Car.Value = ""
   Job.Value = ""

End Sub

推荐阅读