Страница 1 из 1
массив пользовательских типов в openoffice
Добавлено: 28 апр 2009, 10:29
v5v5
Как реализовать массив пользовательских типов в openoffice?
Я делал так
Type MyType
Param0@
Param1@
Param2@
Param3@
End Type
Dim Massiv() As MyType
Но по ходу программы не работает
ReDim Massiv(0 To 9)
Как бы это заставить работать?
Если при определениии массива MyType заменить на Integer, то все нормально
Re: массив пользовательских типов в openoffice
Добавлено: 28 апр 2009, 19:43
Naeel Maqsudov
В MSOffice нормально работает...
А какое сообщение об ошибке выдает?
Может в нём так прямо и написано, что нельзя?
Re: массив пользовательских типов в openoffice
Добавлено: 29 апр 2009, 10:28
v5v5
Вот примерно такой же пример:
Код: Выделить всё
REM ***** BASIC *****
Option Explicit
Type MyType
Param0#
Param1#
Param2#
Param3#
End Type
Dim Massiv() As MyType
Sub Main
Dim oSheets, oSheet
Dim i%
oSheets = ThisComponent.Sheets
oSheet = oSheets.getByIndex(0)
ReDim Massiv(0 To 9) As MyType
For i% = 0 To 9
Massiv(i%).Param0# = oSheet.getCellByPosition(0, i%).getValue()
Massiv(i%).Param1# = oSheet.getCellByPosition(1, i%).getValue()
Massiv(i%).Param2# = oSheet.getCellByPosition(2, i%).getValue()
Massiv(i%).Param3# = oSheet.getCellByPosition(3, i%).getValue()
Next i%
End Sub
При отладке в строке
ReDim Massiv(0 To 9) As MyType
Сообщение об ошибке
Inadmissible value or data type. Index out of defined range.
Выходит нельзя в динамических массивах использовать пользовательские типы?! Я об этом ничего не нашел.
Все это в Calc (OpenOffice). В MsOffice я не пробовал.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Отвечаю сам себе
строку
ReDim Massiv(0 To 9) As MyType
надо заменить на
ReDim Preserve Massiv(0 To 9) As MyType
Это работает как надо. Вот зесь нашел
http://www.oooforum.org/forum/viewtopic.phtml?t=64888