
求高手看下VBA代码那里错了,为什么出来的窗口只能在一行中录入数据,不能自动弄到下一行
PrivateSubaddcustom_Click()DimcountAsLong'count存放记录数DimiAsInteger'i循环控制'选中名称为客户信息管理的工...
Private Sub addcustom_Click()
Dim count As Long 'count 存放记录数
Dim i As Integer ' i 循环控制
'选中名称为客户信息管理的工作表为当前工作表
Sheets("入库明细单").Select
'读取存储区总的记录数
count = Sheets("入库明细单").Range("A1048576").End(xlUp).Row
'检查数据信息非空
If Trim(TextBoxid.Value) = "" Or _
Trim(TextBoxname.Text) = "" Or _
Trim(Textid.Value) = "" Then
MsgBox "产品编号、产品名称和规格型号均不能为空! "
Exit Sub
End If
'检查数据是否重复
For i = 4 To count
If Trim(Sheets("入库明细单").Cells(i, 1).Value) = Trim(TextBoxid.Text) _
Or Trim(Sheets("入库明细单").Cells(i, 2).Value) = Trim(TextBoxname.Text) Then
MsgBox "记录已存在,请重新输入! "
Exit Sub
End If
Next i
'添加客户信息语句
Sheets("入库明细单").Cells(count + 3, 2) = Trim(TextBoxid.Text)
Sheets("入库明细单").Cells(count + 3, 3) = Trim(TextBoxname.Text)
Sheets("入库明细单").Cells(count + 3, 4) = Trim(Textid.Text)
Sheets("入库明细单").Cells(count + 3, 6) = Trim(TextBoxjg.Text)
Sheets("入库明细单").Cells(count + 3, 7) = Trim(TextBoxsl.Text)
Sheets("入库明细单").Cells(count + 3, 9) = Trim(TextBoxgy.Text)
Sheets("入库明细单").Cells(count + 3, 10) = Trim(TextBoxfzr.Text)
Sheets("入库明细单").Cells(count + 3, 11) = Trim(TextBoxzl.Text)
Sheets("入库明细单").Cells(count + 3, 12) = Trim(TextBoxkg.Text)
Sheets("入库明细单").Cells(count + 3, 13) = Trim(TextBoxday.Text)
End Sub 展开
Dim count As Long 'count 存放记录数
Dim i As Integer ' i 循环控制
'选中名称为客户信息管理的工作表为当前工作表
Sheets("入库明细单").Select
'读取存储区总的记录数
count = Sheets("入库明细单").Range("A1048576").End(xlUp).Row
'检查数据信息非空
If Trim(TextBoxid.Value) = "" Or _
Trim(TextBoxname.Text) = "" Or _
Trim(Textid.Value) = "" Then
MsgBox "产品编号、产品名称和规格型号均不能为空! "
Exit Sub
End If
'检查数据是否重复
For i = 4 To count
If Trim(Sheets("入库明细单").Cells(i, 1).Value) = Trim(TextBoxid.Text) _
Or Trim(Sheets("入库明细单").Cells(i, 2).Value) = Trim(TextBoxname.Text) Then
MsgBox "记录已存在,请重新输入! "
Exit Sub
End If
Next i
'添加客户信息语句
Sheets("入库明细单").Cells(count + 3, 2) = Trim(TextBoxid.Text)
Sheets("入库明细单").Cells(count + 3, 3) = Trim(TextBoxname.Text)
Sheets("入库明细单").Cells(count + 3, 4) = Trim(Textid.Text)
Sheets("入库明细单").Cells(count + 3, 6) = Trim(TextBoxjg.Text)
Sheets("入库明细单").Cells(count + 3, 7) = Trim(TextBoxsl.Text)
Sheets("入库明细单").Cells(count + 3, 9) = Trim(TextBoxgy.Text)
Sheets("入库明细单").Cells(count + 3, 10) = Trim(TextBoxfzr.Text)
Sheets("入库明细单").Cells(count + 3, 11) = Trim(TextBoxzl.Text)
Sheets("入库明细单").Cells(count + 3, 12) = Trim(TextBoxkg.Text)
Sheets("入库明细单").Cells(count + 3, 13) = Trim(TextBoxday.Text)
End Sub 展开
3个回答
展开全部
问题在于你没对A列填数,所以每次检测到的count都是同一值,应将count = Sheets("入库明细单").Range("A1048576").End(xlUp).Row改为count = Sheets("入库明细单").Range("B1048576").End(xlUp).Row。
另外添加客户信息语句为什么要空两行呢,如果连续填写,应将Sheets("入库明细单").Cells(count + 3, X) = ……改为Sheets("入库明细单").Cells(count +1, X) = ……
另外添加客户信息语句为什么要空两行呢,如果连续填写,应将Sheets("入库明细单").Cells(count + 3, X) = ……改为Sheets("入库明细单").Cells(count +1, X) = ……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你的录入在循环外面,且 Sheets("入库明细单").Cells(count + 3, 2) = Trim(TextBoxid.Text)中的count 为定值,单次运行当然只是一行录入啊
追问
怎么才能解决这个问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
COUNT为定值,所以只能在count+3这一行录入
更多追问追答
追问
求大神帮忙改下
追答
放在循环里把,再把count换成循环的i就可以了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询