Strona 1 z 1

[Solved] Dodawanie komórek na bieżącej stronie

: czw lut 25, 2016 9:37 am
autor: kturendyk
Witam
Może i błahostka ale znowu nie mogę sobie poradzić. Znalazłem taki kod

Kod: Zaznacz cały

sub wstawkomorki
Dim Doc As Object
 Dim Sheet As Object
 Dim CellRangeAddress As New com.sun.star.table.CellRangeAddress
 Doc = ThisComponent
 Sheet = Doc.Sheets(0)
 CellRangeAddress.Sheet = 0
 CellRangeAddress.StartColumn = 1
 CellRangeAddress.StartRow = 8
 CellRangeAddress.EndColumn = 2
 CellRangeAddress.EndRow = 8
 Sheet.insertCells(CellRangeAddress, com.sun.star.sheet.CellInsertMode.DOWN)

end sub
Działa to ładnie ale tylko w pierszym arkuszu (albo w arkuszu zaznaczonym w Doc.Sheets(0),CellRangeAddress.Sheet = 0)
Ja potrzebował bym żeby te komórki dodawało w aktualnie aktywnym arkuszu ale nie działa mi to.
Próbowałem z oSheet = oDoc.getCurrentController().ActiveSheet ale jakoś to nie wychodzi zawsze dodaje do pierwszego arkusza. Co robię źle?

Re: Dodawanie komórek na bieżącej stronie

: czw lut 25, 2016 11:18 am
autor: belstar
kturendyk pisze:Co robię źle?
Musisz podać Metodzie InsertCells Odpowiednie dane, choć sam o tym wspomniałeś.
kturendyk pisze:Doc.Sheets(0),CellRangeAddress.Sheet = 0)
Dobrze kombinowałeś z getCurrentController, tylko potem pogubiłeś się.

Książka Andrew Macro i MRI to podstawa.

Kod mógłby wyglądać jak poniżej:

Kod: Zaznacz cały

Sub wstawkomorki
    Dim Doc As Object
    Dim Sheet As Object
    Dim Index As Integer
    Dim CellRangeAddress As New com.sun.star.table.CellRangeAddress
    
    Doc = ThisComponent
    Index = doc.getCurrentController().getSelection().getRangeAddress().Sheet
    Sheet = Doc.Sheets(0)
    CellRangeAddress.Sheet = Index
    CellRangeAddress.StartColumn = 1
    CellRangeAddress.StartRow = 8
    CellRangeAddress.EndColumn = 2
    CellRangeAddress.EndRow = 8
    Sheet.insertCells(CellRangeAddress, com.sun.star.sheet.CellInsertMode.DOWN)
End sub

Re: Dodawanie komórek na bieżącej stronie

: czw lut 25, 2016 10:17 pm
autor: kturendyk
Właśnie brakowało mi tego Index.
Jakoś nie mogę poskładać składni poleceń żeby zadziałały,zwłaszcza ActiveSheet bo na temat sheet(0) jest wiele przykładów
Teraz działa. Wiedziałem że to błahostka.
Andrew Macro znam prawie na pamięć tylko z dostosowaniem do swoich potrzeb mam problem.
MRI to dla mnie nowość dopiero się uczę
Ale ogólnie dziękuję za pomoc i kontynuuję walkę dalej