在 VBA Libreoffice 中获取 FindFirst 结果的行号

Posted

技术标签:

【中文标题】在 VBA Libreoffice 中获取 FindFirst 结果的行号【英文标题】:Get row number of a FindFirst result in VBA Libreoffice 【发布时间】:2018-03-11 21:11:46 【问题描述】:

我有一个函数在包含值的列中查找第一个单元格:

recherche = colonneRecherche.createSearchDescriptor    
    with recherche                     
        .SearchString = valeur
        .SearchCaseSensitive = false    
        .SearchByRow = true          
        .SearchWords = false          
    end with
resultat = colonneRecherche.findFirst(recherche)
    if isnull(resultat) then
        RechercherValeur = "NO RESULT!"
        Exit Function
    else
        thisComponent.CurrentController.select(resultat)
        a.nom = "TEST"
        RechercherValeur = a
        Exit Function
    End If

包含“选择”的行选择了好的单元格,但我想获得单元格的行号而不选择它。我试过了

resultat.Row

但它不起作用。任何人都可以帮助我吗? 谢谢

【问题讨论】:

【参考方案1】:

我自己找到的:

Msgbox "Row: " + resultat.cellAddress.Row

【讨论】:

【参考方案2】:

我从未使用过 LibreOffice,而且我不会说法语,但如果您的 VBA 类似于 Excel VBA,那么您可能使用了不正确的方法。

Excel 中没有 FindFirst(与 Access 不同),但是有一个 Find 方法。

下面的 VBA 返回第一个匹配的行号:

Sub testFind()
    Dim ws As Worksheet, f As Range
    Set ws = Sheets("Sheet1")
    Set f = ws.Cells.Find("abc")
    If f Is Nothing Then
        MsgBox "Not found"
    Else
        MsgBox "Found on row: " & f.Row
    End If
End Sub

【讨论】:

重点是:Excel 宏与 LibreOffice 的宏不同...您的解决方案非常适合 Microsoft Office,但不适用于 Libreoffice。不过谢谢:)

以上是关于在 VBA Libreoffice 中获取 FindFirst 结果的行号的主要内容,如果未能解决你的问题,请参考以下文章

将 VBA 简单宏转换为 LibreOffice 宏

LibreOffice (Calc) VBA 单元格总和(按索引)

更快的单元格输入值 LibreOffice Vba

如何将这行 VBA 转换为 LibreOffice Basic?

Excel 宏到 LibreOffice

Ubuntu中的LibreOffice是不是有类似于Microsoft office(word,excel等)的vba宏的东西? [关闭]