簡體   English   中英

僅評估一次excel串聯公式

[英]Evaluate excel concatenate formula only once

我正在用excel構建模板/表單,不同的人將在不同的計算機上使用該模板/表單來填寫一些信息,然后通過電子郵件將其發送給我。

填充模板時,我需要為字段分配一個唯一的ID號以及其他信息(類似於請求ID)。 我正在使用生成此唯一ID

CONCATENATE("NER-";DEC2HEX(RANDBETWEEN(0;4294967295);8))

這個公式對我手頭的任務很有幫助。

我的挑戰是僅在模板中評估該公式一次,然后在打開文件后將其保持不變。 沿着時間戳的東西。 我已經研究了一些方法,但似乎無法使它起作用。

我試圖利用:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    With Target
        If .Count > 1 Then Exit Sub
        If Not Intersect(Range("A2:A10"), .Cells) Is Nothing Then
            Application.EnableEvents = False
            If IsEmpty(.Value) Then
                .Offset(0, 1).ClearContents
            Else
                With .Offset(0, 1)
                    .NumberFormat = "dd mmm yyyy hh:mm:ss"
                    .Value = Now
                End With
            End If
            Application.EnableEvents = True
        End If
    End With
End Sub

但是我不知道如何將連接函數集成到代碼中。 我也不是很確定在我打開計算機上的模板時是否會保持我的獨特價值不變。

我猜想,這樣一種方法會限制我在整個工作表中的迭代次數,也會對我有好處。

您可以在用戶首次打開工作簿/模板時立即生成並存儲ID,並將此代碼放在“ ThisWorbook模塊”中:

Private Sub Workbook_Open()
    'ID already set?
    If Sheet1.Range("A2").Value <> "" Then Exit Sub

    'Prevent that ID is generated on your machine
    If Environ$("Username") = "YOURUSERNAME" Then Exit Sub

    'Store ID
    Sheet1.Range("A2").Value = _
        "NER-" & [DEC2HEX(RANDBETWEEN(0,4294967295),8)]
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM