我尝试编写一个代码,生成三种类型的连续出版物。
如果var1是comp1,则serial必须以“AG”开头,它必须看起来像AG160001。 如果var1是comp2,则serial必须以“IG”开头,它必须看起来像IG160001。 如果var1是comp3 serial必须以“GC”开头,它必须看起来像GC160001。 每次按下“生成序列”按钮,它会搜索var1的值,如果是comp1,则会生成串行AG160002。
代码效果很好。但是当我运行另一个代码时,我在运行此代码时遇到错误。 错误在线: 未设置对象变量(错误91) varN = Range(“A:A”)。Find(“GC”,SearchOrder:= xlByRows,SearchDirection:= xlPrevious).Row
myAction(dispatch, myParam)
答案 0 :(得分:2)
我相信您收到错误91,因为在指定的范围内找不到值“AG”。
尝试替换它:
varN = Range("A:A").Find("AG", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LastId = Cells(varN, "A").Value
NewId = "AG" & CLng(Mid(LastId, 3)) + 1
awks.Activate
Range("bestand").Value = NewId
wbLVZKpk.Close
有这样的事情:
Dim rngFind As Excel.Range
Set rngFind = Range("A:A").Find("AG", SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
If Not rngFind Is Nothing Then
varN = rngFind.Row
LastId = Cells(varN, "A").Value
NewId = "AG" & CLng(Mid(LastId, 3)) + 1
awks.Activate
Range("bestand").Value = NewId
wbLVZKpk.Close
End If
此外,似乎:
wkb
和wks
变量实际上应该按尺寸标注为
分别为awkb
和awks
Dim LVZKpk As String
行是
丢失如果在模块顶部指定“Option Explicit”,则在编译或运行代码时会收到诸如此类的问题的警报。