Как привязать экземпляр класса к имени листа
RAN
Дата: Среда, 16.05.2012, 12:35 |
Сообщение № 1
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Приветствую! Создаю для книги несколько экземпляров класса (словарей). Не могу сообразить, как привязать каждый из словарей к своему листу (имени листа), для которого он был создан? По индексу не подходит, т.к. порядок создания словарей произвольный, да и перемещение листа блокировать не хочется.
Приветствую! Создаю для книги несколько экземпляров класса (словарей). Не могу сообразить, как привязать каждый из словарей к своему листу (имени листа), для которого он был создан? По индексу не подходит, т.к. порядок создания словарей произвольный, да и перемещение листа блокировать не хочется. RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Приветствую! Создаю для книги несколько экземпляров класса (словарей). Не могу сообразить, как привязать каждый из словарей к своему листу (имени листа), для которого он был создан? По индексу не подходит, т.к. порядок создания словарей произвольный, да и перемещение листа блокировать не хочется. Автор - RAN Дата добавления - 16.05.2012 в 12:35
Саня
Дата: Среда, 16.05.2012, 12:53 |
Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация:
560
±
Замечаний:
0% ±
XL 2016
класс: [vba]Code
Public clsDict As Object Public WSh As Worksheet '<==================== Private Sub Class_Initialize() Set clsDict = CreateObject("Scripting.Dictionary") End Sub
[/vba] модуль:[vba]Code
Public obDict(1 To 2) As New clsDict Sub qqq() For i = 1 To 2 arr = Sheets(i).Range("A1:A10").Value For j = 1 To 10 obDict(i).clsDict.Item(arr(j, 1)) = 1 Next Set obDict(i).WSh = Sheets(i) '<==================== Next End Sub
[/vba]
класс: [vba]Code
Public clsDict As Object Public WSh As Worksheet '<==================== Private Sub Class_Initialize() Set clsDict = CreateObject("Scripting.Dictionary") End Sub
[/vba] модуль:[vba]Code
Public obDict(1 To 2) As New clsDict Sub qqq() For i = 1 To 2 arr = Sheets(i).Range("A1:A10").Value For j = 1 To 10 obDict(i).clsDict.Item(arr(j, 1)) = 1 Next Set obDict(i).WSh = Sheets(i) '<==================== Next End Sub
[/vba] Саня
Ответить
Сообщение класс: [vba]Code
Public clsDict As Object Public WSh As Worksheet '<==================== Private Sub Class_Initialize() Set clsDict = CreateObject("Scripting.Dictionary") End Sub
[/vba] модуль:[vba]Code
Public obDict(1 To 2) As New clsDict Sub qqq() For i = 1 To 2 arr = Sheets(i).Range("A1:A10").Value For j = 1 To 10 obDict(i).clsDict.Item(arr(j, 1)) = 1 Next Set obDict(i).WSh = Sheets(i) '<==================== Next End Sub
[/vba] Автор - Саня Дата добавления - 16.05.2012 в 12:53
RAN
Дата: Среда, 16.05.2012, 13:57 |
Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Привет, Саня! Твой вариант меня в полный ступор загнал. Что с ним делать? В модуле листа1 мне понятно. Изобрази свой в файле.
Привет, Саня! Твой вариант меня в полный ступор загнал. Что с ним делать? В модуле листа1 мне понятно. Изобрази свой в файле. RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Привет, Саня! Твой вариант меня в полный ступор загнал. Что с ним делать? В модуле листа1 мне понятно. Изобрази свой в файле. Автор - RAN Дата добавления - 16.05.2012 в 13:57
Саня
Дата: Среда, 16.05.2012, 16:48 |
Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация:
560
±
Замечаний:
0% ±
XL 2016
Quote (RAN )
Твой вариант меня в полный ступор загнал.
словарь - это свойство класса я добавил еще одно свойство - лист - для связки со словарем Quote (RAN )
Изобрази свой в файле.
вот так например
Quote (RAN )
Твой вариант меня в полный ступор загнал.
словарь - это свойство класса я добавил еще одно свойство - лист - для связки со словарем Quote (RAN )
Изобрази свой в файле.
вот так напримерСаня
К сообщению приложен файл:
ran.xls
(47.5 Kb)
Ответить
Сообщение Quote (RAN )
Твой вариант меня в полный ступор загнал.
словарь - это свойство класса я добавил еще одно свойство - лист - для связки со словарем Quote (RAN )
Изобрази свой в файле.
вот так напримерАвтор - Саня Дата добавления - 16.05.2012 в 16:48
nerv
Дата: Среда, 16.05.2012, 16:56 |
Сообщение № 5
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Quote (Саня )
словарь - это свойство класса
а я думал свойства могут быть только у объектов , а "модули классов" - конструктор этих самых объектов [vba]Code
' Class1: code Public x Public y ' Module1: code Sub Example() Dim z As New Class1 MsgBox VarType(z) = vbObject z.x = 1 End Sub
[/vba]
Quote (Саня )
словарь - это свойство класса
а я думал свойства могут быть только у объектов , а "модули классов" - конструктор этих самых объектов [vba]Code
' Class1: code Public x Public y ' Module1: code Sub Example() Dim z As New Class1 MsgBox VarType(z) = vbObject z.x = 1 End Sub
[/vba]nerv
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук YM 41001156540584 / WM WMR R21924176233 https://github.com/nervgh/vba
Сообщение отредактировал nerv - Среда, 16.05.2012, 17:09
Ответить
Сообщение Quote (Саня )
словарь - это свойство класса
а я думал свойства могут быть только у объектов , а "модули классов" - конструктор этих самых объектов [vba]Code
' Class1: code Public x Public y ' Module1: code Sub Example() Dim z As New Class1 MsgBox VarType(z) = vbObject z.x = 1 End Sub
[/vba]Автор - nerv Дата добавления - 16.05.2012 в 16:56
Саня
Дата: Среда, 16.05.2012, 18:18 |
Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация:
560
±
Замечаний:
0% ±
XL 2016
Quote (nerv )
а я думал свойства могут быть только у объектов
да, конечно. класс как шаблон объекта свойствами не обладает, он описывает свойства своей будущей реализации - объекта...
Quote (nerv )
а я думал свойства могут быть только у объектов
да, конечно. класс как шаблон объекта свойствами не обладает, он описывает свойства своей будущей реализации - объекта...Саня
Ответить
Сообщение Quote (nerv )
а я думал свойства могут быть только у объектов
да, конечно. класс как шаблон объекта свойствами не обладает, он описывает свойства своей будущей реализации - объекта...Автор - Саня Дата добавления - 16.05.2012 в 18:18
RAN
Дата: Среда, 16.05.2012, 21:57 |
Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Спасибо за все ответы! Буду изучать/учиться! На чем остановлюсь - не знаю. Но будем учиться далее!
Спасибо за все ответы! Буду изучать/учиться! На чем остановлюсь - не знаю. Но будем учиться далее! RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Спасибо за все ответы! Буду изучать/учиться! На чем остановлюсь - не знаю. Но будем учиться далее! Автор - RAN Дата добавления - 16.05.2012 в 21:57