Macros/Calc/ba025/es

    From The Document Foundation Wiki
    < Macros‎ | Calc
    This page is a translated version of the page Macros/Calc/ba025 and the translation is 10% complete.


    Other languages:

    Summary

    This page provides a LibreOffice Basic macro procedure that retrieves the sorting information for a given cell range. It is an example drawn from Chapter 13 ("Calc as a Database") of the 7.0 Calc Guide.

    Description

    You can use the method createSortDescriptor() to retrieve the sorting information for a given cell range. If this method is called on a database range, it will create a sort descriptor using the sorting information stored with that range. On the other hand, if createSortDescriptor() is called on a standard named range or an unnamed range, it will generate a sort descriptor with default properties. In either case, the newly-generated sort descriptor can be modified and passed as an argument to a sort method called on a given range.

    The macro procedure below demonstrates how to generate and display the sorting information associated with a range. The output of this macro is a dialog box displaying sort descriptor properties.

    Code

    Sub DisplaySortDescriptor
      On Error Resume Next
      Dim oSheet
      Dim oRange       ' <span lang="en" dir="ltr" class="mw-content-ltr">A range is needed to create the sort descriptor.</span>
      Dim oSortDescript
      Dim i%
      Dim s$
      Dim oDoc         ' <span lang="en" dir="ltr" class="mw-content-ltr">Reference newly created calc document.</span>
      
      oDoc = StarDesktop.loadComponentFromURL("private:factory/scalc", "_default", 0, Array())
      oSheet = oDoc.Sheets(0)
      oRange = oSheet.getCellRangeByName("B28:D33")
      oSortDescript = oRange.createSortDescriptor()
      For i = LBound(oSortDescript) To UBound(oSortDescript)
        s = s & oSortDescript(i).Name & " = "
        s = s & oSortDescript(i).Value
        s = s & CHR$(10)
      Next
      MsgBox s, 0, "Sort Descriptor"
    End Sub

    This Calc spreadsheet contains the above LibreOffice Basic code.