Я пытаюсь найти столбец Индекс для последнего заполненного столбца для конкретной строки и для той же цели я пытаюсь написать функцию в LibreOffice. Сначала я должен сказать, что я новичок в написании макросов, особенно в LibreOffice, так как я работаю в Excel. Хотя я пытался написать функцию с помощью форумов, я не могу полностью исправить функцию для столбцов, вот ссылка на оригинальную функцию для поиска последней строки:
https://forum.openoffice.org/en/forum/viewtopic.php?f=20&t=10817
Буду признателен за помощь, если кто-то может помочь мне найти ошибку в функции, проблема, похоже, связана только с разделом индекса столбца.
Function LastColumnIndex (InformedRow, Optional InformedSheet) as long
'this function returns the index of the last column with data in a row
'it returns -1 if the whole row is empty
Dim oSheet As Object, C as Long
Dim oColumn As Object, oFinder As Object, oResult as object
Dim PartsOfTheName
'------- Sheet -------
If IsMissing(InformedSheet) then
oSheet = ThisComponent.CurrentController.ActiveSheet
ElseIf IsNumeric(InformedSheet) then
oSheet = ThisComponent.Sheets(InformedSheet)
Else
oSheet = ThisComponent.Sheets.GetByName(InformedSheet)
End If
'------- Row -------
If Not IsNumeric(InformedRow) then
Dim AllRowNames (0 to 1048575)
AllRowNames = oSheet.Rows.ElementNames
For i = 0 to 1048575
If AllRowNames(i) = UCase(InformedRow) then
C = i
End If
Next
Else
C = InformedRow
End If
'------- Search -------
oRow = oSheet.Rows(C)
oFinder = oRow.createSearchDescriptor
oFinder.searchRegularExpression = true
oFinder.SearchString = "."
oResult = oRow.FindAll(oFinder)
'------- Column Index -------
If Not IsNull(oResult) then
ResultName$ = oResult.AbsoluteName
PartsOfTheName = Split(ResultName,"$")
LastColumnIndex = Val(PartsOfTheName(ubound(PartsOfTheName))) - 1
Else
LastColumnIndex = - 1
End If
End Function