Как реализовать массив пользовательских типов в openoffice?
Я делал так
Type MyType
Param0@
Param1@
Param2@
Param3@
End Type
Dim Massiv() As MyType
Но по ходу программы не работает
ReDim Massiv(0 To 9)
Как бы это заставить работать?
Если при определениии массива MyType заменить на Integer, то все нормально
массив пользовательских типов в openoffice
Модератор: Naeel Maqsudov
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
В MSOffice нормально работает...
А какое сообщение об ошибке выдает?
Может в нём так прямо и написано, что нельзя?
А какое сообщение об ошибке выдает?
Может в нём так прямо и написано, что нельзя?
Вот примерно такой же пример:
При отладке в строке
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
Код: Выделить всё
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