ฉันกำลังพยายามค้นหาคอลัมน์ดัชนีสำหรับคอลัมน์ที่มีประชากรล่าสุดสำหรับแถวที่เฉพาะเจาะจงและเพื่อจุดประสงค์เดียวกันฉันพยายามเขียนฟังก์ชันใน 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