Ошибка "Объектная переменная не установлена."

Автор Doctor_Che, 27 декабря 2016, 14:08

0 Пользователи и 1 гость просматривают эту тему.

Doctor_Che

Пытаюсь скопировать диапазон в массив и потом обращаться к элементам массива.
Dim my_range As Object
Dim my_arr(1, 1) As Double

Dim sMsgBox As String

my_range = ThisComponent.Sheets.getByName ("Лист1").getCellRangebyName("A1:B2")
my_arr = my_range.getDataArray()

sMsgBox = my_arr(0, 1)
MsgBox sMsgBox

Получаю ошибку "Объектная переменная не установлена." в строке "sMsgBox = my_arr(0, 1)"
Подскажите в чём проблема?

economist

my_range = ThisComponent.Sheets.getByName ("Лист1").getCellRangebyName("A1:B2")

пробел между getByName и ("Лист1")
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Doctor_Che

Ситуацию не исправило...
Ошибка возникает всё равно.

JohnSUN

.getDataArray() возвращает не двумерный массив, а "массив массивов". Поэтому my_arr нужно описывать как Variant
Dim my_arr As Variant
А обращаться к элементам двумя последовательными индексами - первая скобка это элемент "внешнего" массива, массива строк, а вторая скобка это индекс ячейки в вложенном массиве, номер колонки:
sMsgBox = my_arr(0)(1)
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Doctor_Che

Спасибо. Теперь заработало.
Dim my_range As Object
Dim my_arr As Variant

Dim sMsgBox As String

my_range = ThisComponent.Sheets.getByName("Лист1").getCellRangebyName("A1:B2")
my_arr = my_range.getDataArray()

sMsgBox = my_arr(0)(1)
MsgBox sMsgBox