Problem: I am using LibreOffice version 4.4, currently I use “drag down method” to automatically increase the number, e.g. LT1, LT2, LT3, …., LT100
How do I achieve the same result using LirbreOffice Basic (VBA)?
Solution:
REM ***** BASIC *****
Sub Main
rem define variables
dim document as object
dim dispatcher as object
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
dim args2(0) as new com.sun.star.beans.PropertyValue
dim i as integer
dim iLT as integer
rem goto cell "A1"
args1(0).Name = "ToPoint"
args1(0).Value = "$A$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem loop and insert suffix for "LT" of the item code
For iLT = 401 to 500
rem loop and insert suffix from "00" until "99" into the item code
For i = 0 to 99
args2(0).Name = "StringName"
if len(i) = 1 then
args2(0).Value = "06-st-0888-LT" & iLT & "-0" & i
else
args2(0).Value = "06-st-0888-LT" & iLT & "-" & i
end if
rem to enter the item code into the cell
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
rem move down one cell
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args1())
Next i
Next iLT
End Sub
