Access VBA教程:Find方法

该方法在标准模块或类模块中查找指定的文本。

expression.Find(Target, StartLine, StartColumn, EndLine, EndColumn, WholeWord, MatchCase, PatternSearch)

expression   必需。返回“Applies To”列表中的一个对象的表达式。

Target  必需 String 型。字符串表达式,其值为要查找的文本。

StartLine  必需 Long 型。该值指定开始搜索的行。如果找到相匹配的文本,StartLine参数值设为找到的匹配文本的开始字符所在的行号。

StartColumn  必需 Long 型。该值指定开始搜索的列。行中的每一字符都在不同的列中,模块左边开始的列数为零。如果找到相匹配的文本,StartColumn参数值将设为找到的匹配文本的开始字符所在的列号。

EndLine  必需 Long 型。该值指定停止搜索的行。如果找到相匹配的文本,EndLine参数值将设为找到的匹配文本的结束字符所在的行号。

EndColumn  必需 Long 型。该值指定停止搜索的列。如果找到匹配的文本,EndColumn参数值将设为找到的匹配文本的开始字符所在的列号。

WholeWord  可选 Boolean 型。True 值将搜索匹配整个词的文本。默认值为 False。

MatchCase  可选 Boolean 型。True 值将搜索大小写与 Target参数匹配的词。默认值为 False。

PatternSearch  可选 Boolean 型。True 值搜索 Target参数包含通配符如星号 (*) 或问号 (?) 的文本。默认值为 False。

说明

Find方法可在 Module对象中搜索指定的文本字符串。如果找到字符串,Find方法返回 True。

要确定找到的搜索文本在模块中的位置,请将 Find方法的 StartLine、StartColumn、EndLine 和 EndColumn参数设为空。如果找到匹配的文本,这些参数将包含该搜索文本开始 (StartLine、StartColumn) 和结束 (EndLine、 EndColumn) 的行编号和列的位置。

例如,如果搜索文本在第 5 行中找到,从第 10 列开始,到 20 列结束,那么这些参数值将是: StartLine = 5、StartColumn = 10、EndLine = 5、EndColumn = 20。

示例

下面的函数在模块中查找指定的字符串,并以指定的新行替换包含该字符串的行:


Function FindAndReplace(strModuleName As String, _
    strSearchText As String, _
    strNewText As String) As Boolean
    Dim mdl As Module
    Dim lngSLine As Long, lngSCol As Long
    Dim lngELine As Long, lngECol As Long
    Dim strLine As String, strNewLine As String
    Dim intChr As Integer, intBefore As Integer, _
        intAfter As Integer
    Dim strLeft As String, strRight As String
    ' Open module.
    DoCmd.OpenModule strModuleName
    ' Return reference to Module object.
    Set mdl = Modules(strModuleName)
    ' Search for string.
    If mdl.Find(strSearchText, lngSLine, lngSCol, lngELine, _
        lngECol) Then
        ' Store text of line containing string.
        strLine = mdl.Lines(lngSLine, Abs(lngELine - lngSLine) + 1)
        ' Determine length of line.
        intChr = Len(strLine)
        ' Determine number of characters preceding search text.
        intBefore = lngSCol - 1
        ' Determine number of characters following search text.
        intAfter = intChr - CInt(lngECol - 1)
        ' Store characters to left of search text.
        strLeft = Left$(strLine, intBefore)
        ' Store characters to right of search text.
        strRight = Right$(strLine, intAfter)
        ' Construct string with replacement text.
        strNewLine = strLeft & strNewText & strRight
        ' Replace original line.
        mdl.ReplaceLine lngSLine, strNewLine
        FindAndReplace = True
    Else
        MsgBox "Text not found."
        FindAndReplace = False
    End If
Exit_FindAndReplace:
    Exit Function
Error_FindAndReplace:
MsgBox Err & ": " & Err.Description
    FindAndReplace = False
    Resume Exit_FindAndReplace
End Function

上页:Access VBA教程:ExportXML方法 下页:Access VBA教程:FirstPage、LastPage、NextPage、PreviousPage方法 (Snapshot Viewer)

Access VBA教程:Find方法

Access VBA教程:FirstPage、LastPage、NextPage、PreviousPage方法 (Snapshot Viewer) Access VBA教程:Follow方法
Access VBA教程:FollowHyperlink方法 Access VBA教程:GetHiddenAttribute方法
Access VBA教程:GetOption方法 Access VBA教程:GoToPage方法
Access VBA教程:GUIDFromString方法 Access VBA教程:HyperlinkPart方法
Access VBA教程:ImportXML方法 Access VBA教程:InsertLines方法
Access VBA教程:InsertText方法 Access VBA教程:Item方法
Access VBA教程:Line方法 Access VBA教程:Modify方法
Access VBA教程:Move方法 Access VBA教程:NewAccessProject方法
Access VBA教程:NewCurrentDatabase方法 Access VBA教程:Nz函数
Access VBA教程:OfflineConflict方法 Access VBA教程:OpenAccessProject方法
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号