将类实例存储在电子表格的单元格中

时间:2019-06-16 13:43:13

标签: excel vba

是否可以将用户定义的类实例存储在单元格中?我想以某种方式存储实例的数据,并且最好显示类的属性

2 个答案:

答案 0 :(得分:1)

单元格不能仅包含对象值。因此,您需要将所有值保存到单元格中。

向您的班级添加2个过程,例如SaveToWorksheetLoadFromWorksheet。一种将所有数据保存到所需的工作表中,另一种可以将数据从工作表中加载到实例中。

因此您可以执行以下操作:

Dim MyInstance = New MyClass
'do something with that instance
MyInstance.SaveToWorksheet "SheetName"

Set MyInstance = Nothing 'kill the instance

Dim MyNewInstance = New MyClass
MyNewInstance.LoadFromWorksheet "SheetName"
'should recreate the instance with the data from the worksheet

如何保存/加载数据取决于类的外观以及如何将数据保存到表中。

答案 1 :(得分:0)

创建类的默认成员

  • 导出您的课程模块;
  • 将其另存为扩展名为 .cls 的文本文件;
  • 从您的项目中删除原始课程;
  • 在记事本中打开导出的模块;
  • 添加以下行Attribute Value.VB_UserMemId = 0
  • 将所需属性指定为默认属性

将属性指定为默认值的示例:

Property Get Value() As Long
    Attribute Value.VB_UserMemId = 0
    Value = Whatever
End Property
  • 保存修改后的文件,然后将其重新导入到项目中

使用默认属性的示例:

Dim CC As CMyClassName
Set CC = New CMyClassName
CC.Value = 123
' is the same as 
CC = 123

Source

相关问题