LibreOffice编写器:获取找到的单元格的下一个单元格的内容



我需要在Writer表中找到一些文本,然后将找到的文本右侧单元格的内容放入变量中。使用以下代码成功找到文本:

Sub get_contr_num
dim oDoc as Object
dim oFound as Object
dim oDescriptor
dim oCursor as Object
oDoc = ThisComponent
oDescriptor = oDoc.createSearchDescriptor()
oDescriptor.SearchString = "Contract *No"
oDescriptor.SearchRegularExpression = true
oFound=oDoc.FindFirst(oDescriptor)
End Sub

现在我需要获取正确单元格的内容。据我所知,oFoundXTextRange的对象,我需要具有行和列参数的XCellRange。我该怎么做?

摘自Andrew Pitonyak,2015年第7.1.2节:

TextRange对象有一个TextTable属性和一个Cell属性。如果文本范围包含在文本表格单元格。

下面是示例代码。

cellname_found = oFound.Cell.CellName
cellname_right = Chr(Asc(Left(cellname_found, 1))+1) & Right(cellname_found, 1)
oTable = oFound.TextTable
oCell_right = oTable.getCellByName(cellname_right)

如果CellProperties提供行和列编号而不是名称,会更容易。显然,它没有,所以有必要使用字符串操作来解析CellName属性。

相关内容

最新更新