Страница: 1 |
Тема такая. В одной екселевской книге определены функция для получения массива значений из листа и тип определенный пользователем, который и используется для этого массива. Тип определен в отдельном модуле и объявлен как Public. Ниже текст функции: Public Function getfirm(fiNum As Boolean, fiName As Boolean, fiForm As Boolean) As GetDataList.CFirm() Dim line_s() As GetDataList.CFirm Dim crange As Range Dim i As Long Dim cont As Long Set crange = Range("a1", Columns.End(xlDown)) cont = crange.Rows.Count ReDim line_s(cont) For i = 0 To cont - 1 If fiNum = True Then line_s(i).SNumber = Range("a" & i + 1).Value End If If fiName = True Then line_s(i).NameFi = Range("b" & i + 1).Value End If If fiForm = True Then line_s(i).Forma = Range("c" & i + 1).Value End If 'Debug.Print (line_s(i).NameFi) Next i 'ReDim getfirm(cont) getfirm = line_s End Function Если функция вызывается из этого же модуля, то все работает. Если же из другой книги то нет. Дает ошибку компиляции: User-defined type not defined. На первую книгу ссылка установлена.
1 Вариант тип должен быть описан ка Public на уровне модуля а не класа и все кто работает с этим типом должны иметь ссылку на документ в котором описан тип 2 Вариант Можно написать класс с Public атрибутами(вместо наличия типа) и объект объявить как Public на уровне модуля Удачи Добавте новый лист в "родную" книгу и сделайте его активным, тоже не будет работать. dedtolya Страница: 1 |
Вопрос: Проблема с пользовательским типом в Excell
Добавлено: 29.10.03 16:22
Автор вопроса: maaxflyer
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
Evard
Вопросов: 14
Ответов: 6
Профиль | | #1
Добавлено: 30.10.03 19:24
Номер ответа: 2
Автор ответа:
dedtolya
Вопросов: 0
Ответов: 39
Профиль | | #2
Добавлено: 30.10.03 21:26