在 NamedRange 控件中查找特定的信息,然后返回一个 Microsoft.Office.Interop.Excel.Range 对象,该对象表示在其中找到此信息的第一个单元格。
命名空间:  Microsoft.Office.Tools.Excel
程序集:  Microsoft.Office.Tools.Excel(在 Microsoft.Office.Tools.Excel.dll 中)
语法
声明
Function Find ( _
    What As Object, _
    After As Object, _
    LookIn As Object, _
    LookAt As Object, _
    SearchOrder As Object, _
    SearchDirection As XlSearchDirection, _
    MatchCase As Object, _
    MatchByte As Object, _
    SearchFormat As Object _
) As Range
Range Find(
    Object What,
    Object After,
    Object LookIn,
    Object LookAt,
    Object SearchOrder,
    XlSearchDirection SearchDirection,
    Object MatchCase,
    Object MatchByte,
    Object SearchFormat
)
参数
- What
 类型:System.Object
 要搜索的数据。可以是字符串或任何 Microsoft Office Excel 数据类型。
- After
 类型:System.Object
 从其后开始搜索的单元格。此单元格就是从用户界面执行的搜索完成后处于活动状态的单元格。注意,After 必须是该范围中的单个单元格。请记住,搜索将从该单元格之后开始;只有方法绕回到指定的单元格之后,才会搜索该单元格。如果您未指定此参数,则从该范围左上角中的单元格之后开始搜索。
- LookIn
 类型:System.Object
 信息的类型。
- LookAt
 类型:System.Object
 可以是下列 XlLookAt 值之一:xlWhole 或 xlPart。
- SearchOrder
 类型:System.Object
 可以是下列 XlSearchOrder 值之一:xlByRows 或 xlByColumns。
- SearchDirection
 类型:Microsoft.Office.Interop.Excel.XlSearchDirection
 搜索方向。
 可以是下列 XlSearchDirection 值之一:
 xlNext 或 xlPrevious。
- MatchCase
 类型:System.Object
 如果在搜索时区分大小写,则为 true。默认值为 false。
- MatchByte
 类型:System.Object
 仅当已选择或安装双字节语言支持时,才会用到此参数。如果让双字节字符仅与双字节字符相匹配,则为 true;如果让双字节字符与其单字节等效字符相匹配,则为 false。
- SearchFormat
 类型:System.Object
 搜索格式。
返回值
类型:Microsoft.Office.Interop.Excel.Range
一个 Microsoft.Office.Interop.Excel.Range 对象,表示在其中找到该信息的第一个单元格。
备注
如果未找到匹配,则此方法返回 nullnull 引用(在 Visual Basic 中为 Nothing)。
此方法不会影响选定内容或活动单元格。
每当使用此方法时,都会保存 LookIn、LookAt、SearchOrder 和 MatchByte 的设置。 如果在下次调用此方法时不指定这些参数的值,将使用保存的值。 设置这些参数会更改“查找”对话框中的设置,而更改“查找”对话框中的这些设置会更改在省略这些参数时所使用的保存值。 为了避免出现问题,请在每次使用此方法时显式设置这些参数。
可以使用 FindNext 和 FindPrevious 方法重复进行搜索。
当搜索功能到达指定搜索范围的末尾时,它会绕回到该范围的开始。 若要在发生此绕回操作时停止搜索,请保存找到的第一个单元格的地址,然后针对已保存的这个地址测试以后找到的每个单元格地址。
可选参数
有关可选参数的信息,请参见Office 解决方案中的可选参数。
示例
下面的代码示例使用 Find 方法,在 NamedRange 控件中查找值为 Seashell 的第一个单元格。 该示例然后使用 FindNext 和 FindPrevious 方法查找值为 Seashell 的下一个单元格,然后返回到原始单元格。 最后,该示例使用 Cut 方法剪切值为 Seashell 的第一个单元格的内容并将其粘贴到单元格 B1 中。
此示例针对的是文档级自定义项。
    Private Sub FindValue()
        Me.Range("A1").Value2 = "Barnacle"
        Me.Range("A2").Value2 = "Seashell"
        Me.Range("A3").Value2 = "Star Fish"
        Me.Range("A4").Value2 = "Seashell"
        Me.Range("A5").Value2 = "Clam Shell"
        Dim namedRange1 As Microsoft.Office.Tools.Excel.NamedRange _
            = Me.Controls.AddNamedRange(Me.Range("A1", "A5"), _
            "namedRange1")
        ' Find the first occurrence of "Seashell".
        Dim Range1 As Excel.Range = namedRange1.Find("Seashell", , , _
            Excel.XlLookAt.xlWhole, Excel.XlSearchOrder.xlByColumns, _
            Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext, _
            False, False, )
        ' Find the next occurrence of "Seashell".
        Range1 = namedRange1.FindNext(Range1)
        ' Return to the first occurrence of "Seashell".
        Range1 = namedRange1.FindPrevious(Range1)
        ' Cut the range with the first "Seashell" and copy it to cell B1.
        Dim namedRange2 As Microsoft.Office.Tools.Excel.NamedRange _
            = Me.Controls.AddNamedRange(Range1, "namedRange2")
        namedRange2.Cut(Me.Range("B1"))
    End Sub
private void FindValue()
{
    this.Range["A1", missing].Value2 = "Barnacle";
    this.Range["A2", missing].Value2 = "Seashell";
    this.Range["A3", missing].Value2 = "Star Fish";
    this.Range["A4", missing].Value2 = "Seashell";
    this.Range["A5", missing].Value2 = "Clam Shell";
    Microsoft.Office.Tools.Excel.NamedRange namedRange1 =
        this.Controls.AddNamedRange(this.Range["A1", "A5"],
        "namedRange1");
    // Find the first occurrence of "Seashell".
    Excel.Range Range1 = namedRange1.Find("Seashell", missing, missing,
        Excel.XlLookAt.xlWhole, Excel.XlSearchOrder.xlByColumns,
        Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext,
        false, false, missing);
    // Find the next occurrence of "Seashell".
    Range1 = namedRange1.FindNext(Range1);
    // Return to the first occurrence of "Seashell".
    Range1 = namedRange1.FindPrevious(Range1);
    // Cut the range with the first "Seashell" and copy it to cell B1.
    Microsoft.Office.Tools.Excel.NamedRange namedRange2 =
        this.Controls.AddNamedRange(Range1, "namedRange2");
    namedRange2.Cut(this.Range["B1", missing]);
}
.NET Framework 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。