Объект не найден Ошибка: цикл, который найдет ячейку с тем же значением на другом листе, выберет смещение новой найденной ячейки - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь создать некоторый vba, который будет выполнять цикл для ячеек в столбце на листе 1, а затем проверить, является ли ячейка видимой на листе 2, если это так, то я хочу, чтобы смещение значения листа 2 было вставлено следующимк исходному листу 1 значение.Я получаю объект ошибки, необходимый для функции или значения ячейки для поиска.

Sub findValue()

Dim xlRange As Range
Dim xlCell As Range
Dim xlSheet As Worksheet
Dim valueToFind

For Each cell In Range("h2:h8")
cell.Select
cell = ActiveCell
MsgBox (cell)

valueToFind = ActiveCell
Set xlSheet = ActiveWorkbook.Worksheets("DATA")
Set xlRange = xlSheet.Range("A1:A13")

For Each xlCell In xlRange


    If xlCell.Value = valueToFind Then
        MsgBox (xlCell.Offset(0, 1).Value)
  valueToFind.Offset(0, 2).Value = xlCell.Offset(0, 1).Value

    End If
Next xlCell

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

ОТВЕТ: Мне нужно было добавить 'set' в первый цикл ячейки

0 голосов
/ 28 ноября 2018

В вашем коде есть много вещей, которые выглядят немного странно (в соответствии с допустимым синтаксисом), поэтому я переписал пример ниже.

Sub getOffsetValue()

    Dim origWS as Worksheet
    Dim dataWS as Worksheet

    Set origWS = Worksheets("original") 'change as needed
    Set dataWS = Worksheets("DATA")

    Dim checkCell as Range

    For each checkCell in origWS.Range("H2:H8")

        Dim foundIt as Range
        Set foundIt = dataws.Range("A1:A13").Find(checkCell.Value)

        If Not foundIt is Nothing then

            MsgBox foundIt.Offset(0, 1).Value
            checkCell.Offset(0, 2).Value = foundIt.Offset(0, 1).Value

        End If

    Next

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...