Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Проблема с пользовательским типом в Excell Добавлено: 29.10.03 16:22  

Автор вопроса:  maaxflyer

Тема такая. В одной екселевской книге определены функция для получения

массива значений из листа и тип определенный пользователем, который и

используется для этого массива. Тип определен в отдельном модуле и

объявлен как 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. На первую книгу ссылка установлена.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 Evard



Вопросов: 14
Ответов: 6
 Профиль | | #1 Добавлено: 30.10.03 19:24

1 Вариант

тип должен быть описан ка Public на уровне модуля а не класа и все кто работает с этим типом должны иметь ссылку на документ в котором описан тип

2 Вариант

Можно написать класс с Public атрибутами(вместо наличия типа) и объект объявить как Public на уровне модуля

Удачи

Ответить

Номер ответа: 2
Автор ответа:
 dedtolya



Вопросов: 0
Ответов: 39
 Профиль | | #2 Добавлено: 30.10.03 21:26

Добавте новый лист в "родную" книгу и сделайте его активным, тоже не будет работать.

dedtolya

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам