Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / watches для объекта коллекции / 9 сообщений из 9, страница 1 из 1
05.05.2009, 16:16
    #35969851
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
watches для объекта коллекции
можно в wathes в свойствах элементов коллекции увидеть свойство Key?
у меня заносится вот так Add(Item,[Key],[Before],[After]):

ob.mColl.Add sh.Cells(CurrentY, i), CStr(bgFlagData1) & CStr(nIndex)

Соответственно, ищу ob - mColl - Item1...ItemN - значение вроде True1...TrueN
То ли ослеп, то ли такого нету
...
Рейтинг: 0 / 0
05.05.2009, 17:02
    #35970003
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
watches для объекта коллекции
Нельзя.
...
Рейтинг: 0 / 0
05.05.2009, 17:08
    #35970027
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
watches для объекта коллекции
т.е. фактически мы потом обращаемся к коллекции вслепую? Типа
Cells(1,nIndex) = mColl.Item(CStr(True) & CStr(nIndex))
...
Рейтинг: 0 / 0
05.05.2009, 17:11
    #35970038
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
watches для объекта коллекции
для этого вам надо создать свой класс коллекции, основанный на вашем классе объекта. используйте class builder utility (меню Add-Ins)
...
Рейтинг: 0 / 0
05.05.2009, 17:25
    #35970076
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
watches для объекта коллекции
Кто-нибудь может помочь исправить код? У меня не выводятся данные, т.к. массив оказывается пустым всегда (чувствую, что в индексе (Item(индекс)) всё дело) Слишком здоровый файл, никак не прикрепить :(
...
Рейтинг: 0 / 0
05.05.2009, 17:26
    #35970084
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
watches для объекта коллекции
Debug.Print вам в помощь
...
Рейтинг: 0 / 0
05.05.2009, 17:37
    #35970124
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
watches для объекта коллекции
программер vba бы помог, да мало таких

Всё равно спасибо, узнал много новых слов
...
Рейтинг: 0 / 0
05.05.2009, 17:42
    #35970145
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
watches для объекта коллекции
bgFlagData1 - что это за переменная, какого типа?
если это контрол типа флажок, то в локализованной версии офиса вы получите значения: Истина/Ложь

дальше сами разбирайтесь
...
Рейтинг: 0 / 0
05.05.2009, 18:35
    #35970313
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
watches для объекта коллекции
Konst_OnebgFlagData1 - что это за переменная, какого типа?
если это контрол типа флажок, то в локализованной версии офиса вы получите значения: Истина/Ложь

дальше сами разбирайтесь
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
'Module
Dim bgFlagData1 As Boolean
Dim collData As Collection
Dim CurrentY As Long
Dim nIndex As Long
Public bgFlagData1 As Boolean
'Class Module
Public mColl As Collection
Заношу в коллекцию:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
       nIndex =  1 
    For i = (iChoise) To (iChoise +  10 )
        Select Case i
        Case  14 ,  15 ,  21 ,  22 
            ob.mColl.Add sh.Cells(CurrentY, i), CStr(bgFlagData1) & CStr(nIndex)
            nIndex = nIndex +  1 
        End Select
    Next i
Вывожу массив:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
For Each o1 In collData
    For Each o2 In o1.mColl
        For Each o3 In o2.mColl
            For Each o4 In o3.mColl
                CurrentX =  5 
                i =  1 
                Set rn = o4.Get_Data1(i)
                Do While Not rn Is Nothing
                    sh.Cells(CurrentY, CurrentX).Value = rn.Value
                    i = i +  1 
                    CurrentX = CurrentX +  1 
                    Set rn = o4.Get_Data1(i)
                Loop
            Next o4
        Next o3
    Next o2
Next o1
Class Module Get_Data1:
Код: plaintext
1.
2.
3.
4.
Public Property Get Get_Data1(ByVal nIndex As Long) As Range
On Error Resume Next
Set Get_Data1 = Nothing
Set Get_Data1 = mColl.Item(CStr(True) & CStr(nIndex))
End Property
Почему-то Get_Data1 всегда Nothing. а обращаюсь я уже к элементу коллекции так, как надо. И там и тут, надо полагать, значения Key=Ture&nIndex, причём с 1 оба и до конца.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / watches для объекта коллекции / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]