Excel宏使用当前月,年和数字自动生成ID

时间:2014-05-13 14:07:44

标签: excel-vba vba excel

我在点击“添加”按钮后尝试创建自动生成的字符串。 字符串由当前年份,月份和序列组成。 YYMM ## = 140501 其中##表示该月的数字。 如果我点击“添加'再次在同一个月然后140502。 所以最后2个数字是递增,然后是140503,140504,140505 ......

对于下个月,当我点击'添加'它应该有140601,140602 对于新月,最后2个数字计数重置为1。 我试了一下:

Sub AutoID()
Dim autoid1 As String
Dim intLastRow As Long

For i = 1 To 100
autoid1 = "FT" & Format(Date, "yymm") & i

Next

End Sub

1 个答案:

答案 0 :(得分:0)

这将创建您要求的号码,但是一旦静态变量被取消范围,它将失去记住该月的最后一个号码的能力,或者它是否是新的月份

Sub Test()

Dim i As Long

For i = 1 To 10
    Debug.Print NewID
Next i

End Sub


Public Function NewID() As String

Dim m As String, y As String
Static inclNum As Integer
Static lastMonth As Integer

inclNum = inclNum + 1
m = Format(Date, "mm")
y = Format(Date, "yy")

If lastMonth = 0 Then lastMonth = CInt(m)

If CInt(m) <> lastMonth Then
    lastMonth = CInt(m)
    inclNum = 1
End If

NewID = CStr(inclNum)

If Len(NewID) < 2 Then NewID = "0" & NewID

NewID = y & m & NewID


End Function