Пользовательские функции массива в Open Office Calc - PullRequest
1 голос
/ 07 апреля 2011

Может кто-нибудь сказать мне, как написать пользовательскую функцию в Open Office Basic для использования в Open Office Calc и которая возвращает массив значений.Примером одной такой встроенной функции является MINVERSE.Мне нужно написать пользовательскую функцию, которая заполняет диапазон ячеек практически одинаково.Помощь будет высоко ценится.

Ответы [ 2 ]

1 голос
/ 18 июля 2011

Да, я только что понял: все, что вы делаете, это возвращаете массив из вашего макроса, НО вам также нужно нажать Ctrl+Shift+Enter при вводе формулы ячейки для вызова вашей функции (что также имеет место при работе с другие массивы в calc). Вот пример:

Function MakeArray
  Dim ret(2,2)
  ret(0,0) = 1
  ret(1,0) = 2
  ret(0,1) = 3
  ret(1,1) = 4
  MakeArray = ret
End Function
0 голосов
/ 23 мая 2013

FWIW, функция MakeArray damjan возвращает вариант, содержащий массив, я думаю.(Тип, возвращаемый MakeArray, не указан, поэтому по умолчанию используется Variant. Variant - это контейнер с описательным заголовком, который, по-видимому, приводится при необходимости интерпретатором.)

Почти, но не совсем, то же самое, что ивозвращая массив.Согласно http://www.cpearson.com/excel/passingandreturningarrays.htm, Microsoft не представила возможность возвращать массив до 2000 года. Его пример [LoadNumbers (Low As Long, High As Long) As Long ()] не компилируется в OO, отмечая синтаксическую ошибку наПарни, следующие за Лонгом.Похоже, что OO Basic эмулирует pre-2k VBA.

...