我们有一个工作簿模板,通过电子邮件发送、填写并通过电子邮件返回。返回后,我们为工作簿分配一个唯一的编号。目前,唯一编号附加到工作簿名称中。
当工作簿填写不正确时,就会出现问题,我们必须将其发送出去进行更正,然后以更改的名称接收回来。
工作簿由 VBA 处理,并根据唯一编号更新数据库。如果再次出现相同编号的工作簿,则认为是更新,记录被替换。
我们的想法是将唯一编号存储在隐藏的工作表中。是否有另一种不需要隐藏工作表的方法 - 例如通过代码读取和写入工作簿中的一些隐藏字段或全局常量的能力?
最佳答案
您可以使用工作簿的名称集合:
Sub StoreName(key As String, val As Variant)
Dim WB As Workbook
Set WB = ThisWorkbook
WB.Names.Add key, "=" & val 'to force val to be interpreted as a named formula
End Sub
Function ReadName(key As String) As Variant
Dim WB As Workbook
Set WB = ThisWorkbook
ReadName = Mid(WB.Names(key), 2)
End Function
测试如下:
Sub test()
StoreName "bob", "1234"
Debug.Print ReadName("bob")
End Sub
打印1234
。
还有其他方法来存储持久数据。例如,这是一个有趣的blog post .
关于vba - Excel VBA : store version code readable by another workbook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42846479/