不生成以特定值开头的ID

时间:2019-05-29 15:22:18

标签: excel vba

我有一个链接,该链接通过查看一张纸的最后一行来生成ID,并在其中添加1。这些ID不能是某些特定的数字。 为此,我有两个功能可以正常运行,并可以完成预期的工作,但是现在有了一些新的标准。我要告诉我的函数“不要生成以3,4,8开头的ID”,而不是我生成的ID不能提供的一些随机ID。

我对vba不太满意,可能需要很多解释。

Function f1(search_value As Long, rng As Range)
    For i = 1 To rng.Count
        If rng.Cells(i, 1).Value = search_value Then
            f1 = True
            Exit Function
        End If
    Next i

    f1= False
End Function

Function f2(last_ID As Long, rng As Range)
    Dim newID As Long
    newID = last_ID + 1

    While f1(newID, rng)
        newID = newID + 1
    Wend

    f2 = newID
End Function

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作。

Function f1(search_value As Long, rng As Range)
    For i = 1 To rng.Count
        If rng.Cells(i, 1).value = search_value Then
            f1 = True
            Exit Function
        End If
    Next i

    f1 = False
End Function

Function genID(last_ID As Long, rng As Range)
    Dim newID As Long

    If Not Left(Len(last_ID + 1), 1) = 3 Or Left(Len(last_ID + 1), 1) = 4 Or Left(Len(last_ID + 1), 1) = 8 Then
        newID = last_ID + 1
    End If

    While f1(newID, rng)
        newID = newID + 1
    Wend

    f2 = newID
End Function