在excel工作表中存储对象?

时间:2011-06-16 00:09:26

标签: excel vba

Hello有没有人知道在工作表对象本身中存储对象的方法?或者我们是否必须将其序列化并将其另存为自定义属性?我想要存储的数据我真的不想坐在一张纸上。

2 个答案:

答案 0 :(得分:3)

取决于您要添加到工作表中的内容(我假设的数据意味着文本),如果是这样的话。添加对应用程序可扩展性the Extensibility

的引用

并添加你想要的东西。是否有子程序进入模块,或进入工作表。我使用这样的东西将一个子程序添加到一个新模块中,但同样的想法将在一个工作表中起作用。

 Sub AddSomething()
    Dim VBCodeMod As CodeModule
    Dim LineNum As Long
    Set VBCodeMod = ActiveWorkbook.VBProject.VBComponents("Sheet1").CodeModule
    With VBCodeMod
    LineNum = .CountOfLines + 1
    .InsertLines LineNum, _
    "Dim thing as String"& Chr(13) & _
    "thing = ""toothpaste"""& Chr(13) & _
    " 'comments too"
    End With

当然,如果您愿意,可以根据需要调整此项以覆盖您的项目,并根据需要明确指定持久值。实际上添加一个模块会使事情更容易访问,但如果你想要

,你可以写入工作表

答案 1 :(得分:1)

因为保存的Excel电子表格只是对象图的序列化,所以无法解决序列化对象的问题 - 如果您的对象可以往返于字符串,它为您提供了许多选项..

我仍然想知道,如果CustomDocumentProperties是唯一的地方,或者它的限制是否太麻烦。

http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.customdocumentproperties%28v=vs.80%29.aspx