Tôi đã có một macro LibreOffice Writer tìm đoạn Tiêu đề tiếp theo và chuyển đổi nó thành trường hợp Tiêu đề. Hiện tại tôi phải gọi nó nhiều lần cho đến khi kết thúc tập tin. Tôi đang cố gắng thiết lập một vòng lặp sẽ làm mọi thứ, nhưng dừng lại ở EOF. Nhưng vòng lặp không hoạt động.
Bất kỳ trợ giúp sẽ được đánh giá cao. Đây là những gì tôi có.
sub Convert_Headings_to_Title_Case
rem define variables
dim document as Object
dim dispatcher as Object
Dim Proceed As boolean
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem loop not working
Do
' Call other macro to find next Heading:
Heading_findNext
dispatcher.executeDispatch(document, ".uno:EndOfLineSel", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:ChangeCaseToTitleCase", "", 0, Array())
Loop While Proceed
end sub
Macro được gọi để tìm các tiêu đề là:
sub Heading_findNext
'moves text cursor, but not view cursor, to heading
Dim oStyle, oCurs, oDoc, oVC, Proceed
oDoc = ThisComponent.Text
oVC = ThisComponent.CurrentController.getViewCursor
oCurs = ThisComponent.Text.createTextCursorByRange(oVC)
Do
Proceed = oCurs.gotoNextParagraph(false)
oStyle = Mid(oCurs.ParaStyleName, 1, 2)
Select Case oStyle
Case "_H", "He"
oVC = ThisComponent.CurrentController.getviewcursor()
oVC.gotoRange(oCurs, False)
Exit Do
End Select
Loop While Proceed <> false
end sub