[英]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.