首页 文章

变量是否可以存储在无法通过Excel访问的Excel文件中

提问于
浏览
2

我刚刚发现,在MS Word中,可以将变量存储在MS Word文件中,这在运行Microsoft Word时无法通过常规接口访问 .

Sub SetMyVariable()
Dim VARNAME As String
    VARNAME = "HiddenVar"
    ActiveDocument.Variables.Add VARNAME, "My special info"
End Sub

这将保存在 word\settings.xml 下的XML Schema中

我尝试在Excel中使用 ThisWorkbook 对象,但它似乎没有 Variable 对象可以像word一样添加 .

我想知道Excel中是否存在类似的东西来存储随文件保存的信息/变量 .

PS:我能想到的最接近的东西(并且在codig中使用)是隐藏的命名范围 .

1 回答

  • 1

    您可以尝试使用 WorkbookCustomXMLParts属性,该属性来自链接似乎是Office产品的通用功能,可在Excel中使用 . 鉴于您注意到用户必须在解压缩的xlsx文件中手动检查XML,然后这似乎映射到Word Variables 功能 . 代码示例只是将 ThisWorkbook 替换为 ActiveDocument

    Option Explicit
    
    Sub TextXMLPart()
    
        Dim objXMLPart As CustomXMLPart
    
        'add
        Set objXMLPart = ThisWorkbook.CustomXMLParts.Add("<foo>bar</foo>")
    
        'inspect
        For Each objXMLPart In ThisWorkbook.CustomXMLParts
            Debug.Print objXMLPart.XML
        Next objXMLPart
    
    End Sub
    

    this question(主要关注Excel和vsto)的接受答案表明:

    自定义XML部件对于应用程序级别的添加,这是我首选的方法,用于存储需要保存在已保存的xls文件中的任何应用程序数据,而不会让用户看到 .

相关问题