Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Объект как в 1С / 9 сообщений из 9, страница 1 из 1
29.01.2016, 09:25
    #39158195
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объект как в 1С
Здравствуйте!
При программировании в 1С есть такой объект как ТаблицаЗначений. Там задаются колонки: название, тип данных или ссылочный тип. В Excel VBA есть подобный объект? Можно воспользоваться массивом, но это неудобно. Возможно написать класс, но он не будет универсальным.
...
Рейтинг: 0 / 0
29.01.2016, 09:42
    #39158216
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объект как в 1С
Не очень понятно, что требуется. Есть коллекция, есть собственные классы, можно сделать коллекцию собственных классов. Есть ADO, можно сделать таблицу БД на локальном файле.
...
Рейтинг: 0 / 0
29.01.2016, 09:53
    #39158229
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объект как в 1С
Shocker.ProНе очень понятно, что требуется. Есть коллекция, есть собственные классы, можно сделать коллекцию собственных классов. Есть ADO, можно сделать таблицу БД на локальном файле.

Нужна подобная коллекция как таблица в форме списка, которую можно вытащить значение СтрокаКоллекции.НазваниеСтолбца. А не как в массиве Массив(НомерСтроки, НомерСтолбца). Чтобы указывать не номер колонки, а название. Просто колонок много и можно номерами колонок запутаться. Ну и для каждой колонки задать тип данных.
...
Рейтинг: 0 / 0
29.01.2016, 10:05
    #39158242
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объект как в 1С
Collection собственных классов
...
Рейтинг: 0 / 0
29.01.2016, 11:17
    #39158322
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объект как в 1С
ferzmikkЧтобы указывать не номер колонки, а названиеМожно использовать пользовательские типы(UDT):
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Type MyRows
    MyCol1 As Date
    MyCol2 As Long
End Type
Type MyTable
    tableRow() As MyRows
End Type
Sub ttt()
    Dim arr, lr As Long
    Dim Table1 As MyTable
    arr = Range("A1:B10").Value
    ReDim Table1.tableRow(1 To 10)
    For lr = 1 To 10
        Table1.tableRow(lr).MyCol1 = arr(lr, 1)
        Table1.tableRow(lr).MyCol2 = arr(lr, 2)
    Next lr
    Debug.Print Table1.tableRow(3).MyCol2
End Sub
...
Рейтинг: 0 / 0
29.01.2016, 11:34
    #39158334
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объект как в 1С
ferzmikkВ Excel VBA есть подобный объект?
Есть коллекция (Collection). Также есть словарь (Scripting.Dictionary), который можно подключить через References или создать через CreateObject.
...
Рейтинг: 0 / 0
29.01.2016, 16:22
    #39158678
hclubmk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объект как в 1С
Recordset?
...
Рейтинг: 0 / 0
29.01.2016, 16:28
    #39158683
anvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объект как в 1С
Доброе время суток
Скорее, если брать объектную модель Excel, это похоже на ListObject. Как раз и ListRow и ListColumn есть.
Обращение к строке ListObject.ListRows(1)
к столбцу, например имя, ListObject.ListColumns(1).Name
...
Рейтинг: 0 / 0
29.01.2016, 16:50
    #39158726
hclubmk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объект как в 1С
Смысл конструирования табличного объекта только ради обращения к полям значений по имени малопривлекателен. Упомянутая "ТаблицаЗначенний" поддерживает сортировку, группировку, но не лишним будет и фильтрация по значению (группе значений) а также, построение сводной таблицы и пр. ADO Recordsed, думается, был бы предпочтительнее, хотя, у каждого своё ИМХО :)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Объект как в 1С / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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