Хранение экземпляров классов в ячейках электронной таблицы - PullRequest
0 голосов
/ 16 июня 2019

есть ли способ хранить пользовательские экземпляры классов в ячейке?я хотел бы как-то хранить данные экземпляров и предпочтительно отображать свойства класса

Ответы [ 2 ]

1 голос
/ 17 июня 2019

Ячейки не могут содержать объекты только значения. Поэтому вам необходимо сохранить все значения в ячейках.

Добавьте 2 процедуры в ваш класс, например SaveToWorksheet и LoadFromWorksheet. Один, который сохраняет все данные на желаемом рабочем листе, и тот, который может загружать данные из рабочего листа в экземпляр.

Так что вы можете сделать что-то вроде:

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

Как сохранить / загрузить ваши данные, зависит от того, как выглядит ваш класс и как вы хотите сохранить данные на листе.

0 голосов
/ 17 июня 2019

Создать члена класса по умолчанию

  • Экспорт модуля вашего класса;
  • Сохранить как текстовый файл с расширением .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

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...