在excel vba中将约束指定给单元格

在excel vba中将约束指定给单元格,excel,vba,constraints,cell,Excel,Vba,Constraints,Cell,我在excel中启用了宏电子表格,其中包含vba代码部分,它会自动生成唯一标识符,如下所示: 它接受CSS-2020-08-text,并向表单的每个记录添加唯一的ID SurveyCode 见下面的代码: Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim IDMaxSuffix As Long, i As Long Dim a As Variant Const IDPrefi

我在excel中启用了宏电子表格,其中包含vba代码部分,它会自动生成唯一标识符,如下所示: 它接受CSS-2020-08-text,并向表单的每个记录添加唯一的ID SurveyCode 见下面的代码:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim IDMaxSuffix As Long, i As Long
    Dim a As Variant

    Const IDPrefix As String = "CSS-2020-08-"    '<- Edit as you want
           
    If Not Intersect(Target, Range("Table1")) Is Nothing Then

        With Range("Table1[SurveyCode]")

            a = .Value

            For i = 1 To UBound(a)

                If a(i, 1) Like "*-######" Then

                    If Right(a(i, 1), 6) > IDMaxSuffix Then IDMaxSuffix = Right(a(i, 1), 6)

                End If

            Next i

            For i = 1 To UBound(a)

                If Len(a(i, 1)) = 0 Then

                    IDMaxSuffix = IDMaxSuffix + 1
                    a(i, 1) = IDPrefix & Format(IDMaxSuffix, "000000")

                End If

            Next i

            Application.EnableEvents = False
            .Value = a
            Application.EnableEvents = True

        End With

    End If

End Sub
在代码的上半部分,它将引用配置表的B4单元格

是否可以修改此代码-引用配置表的B4单元格,而不只是在VBA代码中包含CSS-2020-08-文本?

替换

Const IDPrefix As String = "CSS-2020-08-"   '<- Edit as you want
Const IDPrefix As String = "CSS-2020-08-"   '<- Edit as you want
Dim IDPrefix As String: IDPrefix = ThisWorkbook.Sheets("Config").Range("B4")