vb自动编码的问题 200

求教了做的一个库存记录,当前日期生成编码PrivateSub清空_Click()DimcAsObject,faddAsString,NoAsStringRange("C4... 求教了
做的一个库存记录,当前日期生成编码
Private Sub 清空_Click()
Dim c As Object, fadd As String, No As String
Range("C4:E4,B6:H15,C18,E18,H18,J18,j6:j16").ClearContents
'清空同时设定下个入库编号
With Sheets("入库明细表").Range("B6:B" & Sheets("入库明细表").[B65536].End(xlUp).Row)
Set c = .Find(Left(Range("J2"), 6), LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing And t = Format(Month(Date), "00") Then
fadd = c.Address
Do
No = Left(c, 4) & Format(Mid(c, 5) + 1, "000")
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> fadd
Else
No = "CPRK" & Format(Month(Date), "00") & "001"
End If
End With
Range("J2") = No '入库编号
End Sub
使用起来正常,上月11月份生成编码为CPRK11001这类,到月底为CPRK11044,12月份开始只会累加,第一天的不是CPRK12001
试着加入对比,从原来的编码选取11字符跟当前日期里mm对比,等于就继续加1,不等于的话编码就从当前月份开始
但是怎么调都报错,求指点
展开
 我来答
创作者zUzVB1Sl31
2016-08-29 · 编程类资料、英语学习资料
创作者zUzVB1Sl31
采纳数:1331 获赞数:5975

向TA提问 私信TA
展开全部

你仔细看看这句话的逻辑:

If Not c Is Nothing And t = Format(Month(Date), "00") Then
fadd = c.Address
Do
No = Left(c, 4) & Format(Mid(c, 5) + 1, "000")

弱弱地问一句c是Nothing,还能取位数吗?这么可能不报错...

还有你确定你是用的VB继承开发环境,你这叫VBA,EXCEL内嵌模块

来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式