为 excel vba 中的单元格分配约束

Assigning a constraint to a cell in excel vba

我在excel中启用了宏spreadsheet(Form),其中有vba代码部分,自动生成唯一标识符,如下: 它采用 CSS-2020-08- 文本,并为表单的每条记录添加唯一 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

在我的 excel 表单的“配置”sheet 中,我想在 B4 单元格中写入该文本 - CSS-2020-08-,如下所示:

最后,修改上面的代码,这样,就可以代替

 Const IDPrefix As String = "CSS-2020-08-"

在代码的上半部分,它会引用我的 Config sheet!

的 B4 单元格

是否可以修改此代码 - 以引用配置 sheet 的 B4 单元格,而不是仅在 [=38= 中包含“CSS-2020-08-”文本]代码?

替换...

Const IDPrefix As String = "CSS-2020-08-"   '<- Edit as you want

与...

Dim IDPrefix As String: IDPrefix = ThisWorkbook.Sheets("Config").Range("B4")