Поделиться через


NamedRange.Find Метод (2007 System)

Обновлен: Ноябрь 2007

Находит определенные данные в элементе управления NamedRange и возвращает объект Microsoft.Office.Interop.Excel.Range, который представляет первую ячейку, где найдены эти данные.

Пространство имен:  Microsoft.Office.Tools.Excel
Сборка:  Microsoft.Office.Tools.Excel.v9.0 (в Microsoft.Office.Tools.Excel.v9.0.dll)

Синтаксис

'Декларация
Public 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
'Применение
Dim instance As NamedRange
Dim What As Object
Dim After As Object
Dim LookIn As Object
Dim LookAt As Object
Dim SearchOrder As Object
Dim SearchDirection As XlSearchDirection
Dim MatchCase As Object
Dim MatchByte As Object
Dim SearchFormat As Object
Dim returnValue As Range

returnValue = instance.Find(What, After, _
    LookIn, LookAt, SearchOrder, SearchDirection, _
    MatchCase, MatchByte, SearchFormat)
public 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 должна быть единственной ячейкой в диапазоне. Помните, что поиск начинается после этой ячейки; поиск указанной ячейки не осуществляется до тех пор, пока метод не вернется к этой ячейке. Если этот аргумент не указывается, поиск начинается после ячейки в верхнем левом углу диапазона.
  • MatchCase
    Тип: System.Object
    Значение true, чтобы при поиске учитывался регистр. Значение по умолчанию — false.
  • MatchByte
    Тип: System.Object
    Используется, если только выбрана или установлена поддержка двухбайтовых символов языка. Значение true, чтобы соответствие двухбайтных символов определялось только на двухбайтовых символах; значение false, чтобы двухбайтовые символы соответствовали своим однобайтовым эквивалентам.

Возвращаемое значение

Тип: Microsoft.Office.Interop.Excel.Range
Объект Microsoft.Office.Interop.Excel.Range, который представляет первую ячейку, где найдены необходимые данные.

Заметки

Если соответствие не найдено, метод возвращает значение nullссылка null (Nothing в Visual Basic).

Этот метод не влияет на выделенный фрагмент или активную ячейку.

Параметры для LookIn, LookAt, SearchOrder и MatchByte сохраняются каждый раз при использовании этого метода. Если не задать значения этих аргументов, при следующем вызове данного метода будут использоваться сохраненные значения. Задание этих аргументов изменяет параметры в диалоговом окне "Найти", а изменение параметров в диалоговом окне "Найти" изменяет сохраненные значения, которые используются, если аргументы не указываются. Во избежание проблем при каждом использовании данного метода задавайте эти аргументы явно.

Можно также использовать методы FindNext и FindPrevious для повторения поиска.

Когда достигается конец заданного диапазона поиска, поиск начинается с начала этого диапазона. Чтобы остановить поиск при возникновении такого циклического возврата, сохраните адрес первой найденной ячейки, а затем тестируйте адрес каждой успешно найденной ячейки относительно этого сохраненного адреса.

Необязательные параметры

Сведения о необязательных параметрах см. в разделе Общие сведения о необязательных параметрах в решениях Office.

Примеры

В следующем примере кода с помощью метода Find выполняется поиск первой ячейки со значением Seashell в элементе управления NamedRange. После этого в примере с помощью методов 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]);
}

Разрешения

См. также

Ссылки

NamedRange Класс

NamedRange - члены

Microsoft.Office.Tools.Excel - пространство имен