繁体   English   中英

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

[英]Assigning a constraint to a cell in excel vba

我在 excel 中有启用宏的电子表格 (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 表单的“配置”表中,我想在 B4 单元格中写入该文本 - CSS-2020-08-,如下所示:

在此处输入图片说明

最后,修改上面的代码,这样,而不是

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

在代码的上部,它将引用我的配置表的 B4 单元格!

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

代替...

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

和...

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM