Excel VBA - поиск строки в листе - PullRequest
3 голосов
/ 03 октября 2011

У меня есть эта книга Excel, которую я хочу найти для определенной строки в Sheet1. Если он его найдет, введите новое значение. Но лист довольно большой, поэтому я не думаю, что было бы очень эффективно перебирать каждую ячейку. Итак, могу ли я найти диапазон и найти его таким образом?

Это то, что у меня так далеко:

Dim rngSearchRange as range

    With ThisWorkbook.Sheets(1)
      Set rngSearchRange = .Range("A2:A" & .Range("A" & Rows.Count).End(xlUp).Row)
    End With

Строка, которую я ищу, является первым значением в массиве из трех значений. Итак, как я могу найти этот диапазон для этой конкретной строки, найти позицию и затем ввести новое значение?

Я думал об этом:

Dim rngFindRange as range
Set rngFindRange = rngSearchRange.Find(var(0), LookIn:=xlValues, lookat:=xlWhole)

var (0) - это значение в массиве, который я ищу. Но эта линия не дает мне никаких результатов. Я здесь далеко?

1 Ответ

3 голосов
/ 03 октября 2011

как то так

Sub FindMe()
    Dim ws As Worksheet
    Dim rngSearchRange As Range
    Dim rngFindRange As Range
    Dim Var
    Dim elemVar
    Var = Array("apples", "oranges", "fruit")
    Set ws = ThisWorkbook.Sheets(1)
    Set rngSearchRange = ws.Range(ws.[a2], ws.Cells(Rows.Count, "A").End(xlUp))
    For Each elemVar In Var
        Set rngFindRange = rngSearchRange.Find(elemVar, LookIn:=xlValues, lookat:=xlWhole)
        If Not rngFindRange Is Nothing Then
            MsgBox elemVar & " found in " & rngFindRange.Address(0, 0)
        Else
            MsgBox elemVar & " not found in:"
        End If
    Next elemVar
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...