OpenOffice 3.3 ломает мой код - PullRequest
0 голосов
/ 24 марта 2011

Я больше не могу использовать Cells(x,y) в OpenOffice (похоже, это ошибка, из того, что я могу собрать, гугля Cells.select)Есть ли обходной путь для этого (с другим кодом)?Мне нужно ответить на значение, возвращаемое из Cells(x,y), конечно.

Ошибка:

unsatisfied query of type ooo.vba.excel.XWorksheet!

1 Ответ

0 голосов
/ 27 марта 2011

Либо все изменилось на 3.3, либо они просто все сломали случайно. Скорее всего, все, что я использовал, устарело, но оно может быть временно сломано.

В любом случае вы больше не можете использовать голую Cells(y,x). Теперь вы должны использовать

    Sheet =  ThisComponent.getCurrentController.getActiveSheet
    Cell = Sheet.getCellByPosition(x, y)

Примечание:

  1. Документы здесь (спасибо @Tim Williams за поддержку Google).

  2. В отличие от ячеек, x и y теперь "нормальные" (столбец, строка), а не инвертированы. Кроме того, индекс начинается с нуля.

  3. Чтобы выбрать ячейку, вы должны использовать

    ThisComponent.getCurrentController().createUnoService("com.sun.star.frame.DispatchHelper").select(cell)
    
  4. Для получения активной ячейки

    oCell = ThisComponent.getCurrentSelection()
    If not oCell.supportsService("com.sun.star.sheet.SheetCell") Then
      return
    End If
    ' do stuff here
    
...