我正在编写宏来将VBA模块保存为另一个自解压模块中的64位字符串。自解压模块设计用于容纳多个长字符串(可以是任意长度,最多可达2GB字符串),以及一些简短的代码片段,用于解压缩字符串并导入它们所代表的模块。
无论如何,当我的宏构建自解压模块时,它需要保存真正长的字符串(我将其保存为硬编码的Const
)。但是如果它们太长(> 1024 ish)以适应VBA编辑器中的单行,我就会出错。
我应该如何格式化这些硬编码字符串,以便我可以将它们保存为Const
或以其他方式保存在我的自解压模块中?到目前为止,我已经将每个字符串保存为1000个字符块中的几个Const
声明,但最好每个项目只有一个字符串。
答案 0 :(得分:1)
根据注释中的建议,您可以使用自定义XML部件在工作簿中存储信息。
以下是代码:
Option Explicit
Public Sub AddCustomPart()
Dim oXmlPart As CustomXMLPart
Dim strTest As String
strTest = "<Test_ID>123456</Test_ID>"
Set oXmlPart = ReadCustomPart("Test_ID")
'/ Check if there is already an elemnt available with same name.
'/ VBA or Excel Object Model, doesn't perevnt duplicate entries.
If oXmlPart Is Nothing Then
Set oXmlPart = ThisWorkbook.CustomXMLParts.Add(strTest)
Else
MsgBox oXmlPart.DocumentElement.Text
End If
End Sub
Function ReadCustomPart(strTest As String) As CustomXMLPart
Dim oXmlPart As CustomXMLPart
For Each oXmlPart In ThisWorkbook.CustomXMLParts
If Not oXmlPart.DocumentElement Is Nothing Then
If oXmlPart.SelectSingleNode("/*").BaseName = strTest Then
Set ReadCustomPart = oXmlPart
Exit Function
End If
End If
Next
Set ReadCustomPart = Nothing
End Function