生成Uniqe值

时间:2016-08-29 14:23:45

标签: vba excel-vba excel

我尝试编写一个代码,生成三种类型的连续出版物。

如果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)

1 个答案:

答案 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


此外,似乎:

  1. 您的wkbwks变量实际上应该按尺寸标注为 分别为awkbawks
  2. Dim LVZKpk As String行是 丢失
  3. 如果在模块顶部指定“Option Explicit”,则在编译或运行代码时会收到诸如此类的问题的警报。