Hi KamilLanda, got it Answers From karolus by Python and sokol92 by Native StarBasic Macros … both replied back to back which they replied My Another Post or Topic in the Same Example …
Sorry for the above post which have Typo Error … its Not Column C3 ,
ts Colum D3…
Any Way … Here is the Link … of the Post or Topic
How to Write the StarBASIC code and get the Answers in LibreOffice Like VBA Code below I given? - English - Ask LibreOffice
Original VBA Code :
Sub CalculateWithArray()
Dim FilmLengths() As Variant
Dim Answers() As Variant
Dim Dimension1 As Long, Counter As Long
Sheet1.Activate
FilmLengths = Range("D3", Range("D2").End(xlDown))
Dimension1 = UBound(FilmLengths, 1)
ReDim Answers(1 To Dimension1, 1 To 2)
Counter = 1
For Counter = 1 To Dimension1
Answers(Counter, 1) = Int(FilmLengths(Counter, 1) / 60)
Answers(Counter, 2) = FilmLengths(Counter, 1) Mod 60
Next Counter
Range("F3", Range("F3").Offset(Dimension1 - 1, 1)).Value = Answers
Erase FilmLengths
Erase Answers
End Sub
and The Screen Shots of Excel File
Now, StarBASIC Code in LibreOffice - Calc
Option Explicit
Sub simple_basic_foo()
Dim oDoc As Object, oSheet As Object, oCursor As Object, height As Long
Dim out, v, dataArray, i As Long
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByName(“Sheet1”)
oCursor = oSheet.createCursorByRange(oSheet.getCellRangeByName(“D3”))
oCursor.collapseToCurrentRegion()
height=oCursor.Rows.Count-2
oCursor = oSheet.createCursorByRange(oSheet.getCellRangeByName(“D3”)) 'Return to D3!
oCursor.collapseToSize(1, height)
ReDim out(height-1)
dataArray=oCursor.dataArray
For i=0 To height-1
v=dataArray(i)(0)
out(i)=Array(Int(v / 60), v Mod 60)
Next i
oCursor.gotoOffset(2,0) ’ 2→,0↓
oCursor.collapseToSize(2, height)
oCursor.DataArray = out
End Sub
Here is The LibreOffice - Calc - Screen Shot
Finnally , For Easy Understanding, Mouse Coursor Selet Method (Gui Mode ) I used… Added Extra Code … For Easy Understanding… Purpose for All the People…
Note : Use Mouse Click by Clicking One By One → StepIntoF8 and Don’t use F8 in Key Board
Sub simple_basic_foo()
Dim oDoc As Object, oSheet As Object, oCursor As Object, height As Long
Dim out, v, dataArray, i As Long
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByName("Sheet1")
oDoc.CurrentController.setActiveSheet(oSheet)
oCursor = oSheet.createCursorByRange(oSheet.getCellRangeByName("D3"))
View = ThisComponent.CurrentController : frame = View.getFrame : frame.Activate : View.Select(oCursor)
oCursor.collapseToCurrentRegion()
View = ThisComponent.CurrentController : frame = View.getFrame : frame.Activate : View.Select(oCursor)
height=oCursor.Rows.Count-2
oCursor = oSheet.createCursorByRange(oSheet.getCellRangeByName("D3")) ' Return to D3!
View = ThisComponent.CurrentController : frame = View.getFrame : frame.Activate : View.Select(oCursor)
oCursor.collapseToSize(1, height)
View = ThisComponent.CurrentController : frame = View.getFrame : frame.Activate : View.Select(oCursor)
ReDim out(height-1)
dataArray=oCursor.dataArray
View = ThisComponent.CurrentController : frame = View.getFrame : frame.Activate : View.Select(dataArray)
For i=0 To height-1
v=dataArray(i)(0)
out(i)=Array(Int(v / 60), v Mod 60)
Next i
oCursor.gotoOffset(2,0) ' 2→,0↓
View = ThisComponent.CurrentController : frame = View.getFrame : frame.Activate : View.Select(oCursor)
oCursor.collapseToSize(2, height)
View = ThisComponent.CurrentController : frame = View.getFrame : frame.Activate : View.Select(oCursor)
oCursor.DataArray = out
End Sub
Thats All l…