Я получаю сообщение об ошибке «438»: объект не поддерживает это свойство или метод - PullRequest
0 голосов
/ 24 марта 2019

Мне нужно найти значение в листе 2 в столбце c и отобразить его содержимое в пользовательской форме.

Вот мой код:

Option Explicit

Sub searchdata()
    Dim erow As Long
    Dim WS As Worksheet
    Dim lastrow As Long
    Dim count As Integer
    Dim x As Integer

    lastrow = Sheets("Resolution").Cells(Rows.count, 1).End(xlUp).Row
    count = 0

    For x = 2 To lastrow
        If Sheets("Resolution").Cells(x, 1) = Sheet2.Range("$C2:$c92") Then
            Sheet2.Range("F25") = Sheets("Resolution").Cell(x, 1)
            Sheet2.Range("G25") = Sheets("Resolution").Cell(x, 2)
            Sheet2.Range("H25") = Sheets("Resolution").Cell(x, 3)
            count = count + 1
        End If
    Next x

Может кто-нибудь помочь, пожалуйста?

Ответы [ 2 ]

1 голос
/ 25 марта 2019

Есть несколько проблем с вашим кодом. Помимо проблемы Ячейка и Ячейка с , существует прямое сравнение одной ячейки с несколькими ячейками в диапазоне, а также счетчик неиспользованных смещений.

A С ... Завершить с блок может уменьшить код и повторяющиеся обращения к справочному листу.

Option Explicit

Sub searchdata()

    Dim lastrow As Long, x As Long, count As Long

    WITH Sheets("Resolution")

        lastrow = .Cells(.Rows.count, 1).End(xlUp).Row
        count = 0

        For x = 2 To lastrow
            'the next line will continue if the value in Resolution
            'is found within Sheet2.Range("$C2:$c92")
            If NOT ISERROR(APPLICATION.MATCH(.Cells(x, 1), Sheet2.Range("$C2:$c92"), 0)) Then
                Sheet2.Range("F25").OFFSET(count, 0) = .CellS(x, 1)
                Sheet2.Range("G25").OFFSET(count, 0) = .CellS(x, 2)
                Sheet2.Range("H25").OFFSET(count, 0) = .CellS(x, 3)
                count = count + 1
            End If
        Next x

    END WITH

end sub
1 голос
/ 24 марта 2019

Использование:

        Sheet2.Range("F25") = Sheets("Resolution").Cells(x, 1)
        Sheet2.Range("G25") = Sheets("Resolution").Cells(x, 2)
        Sheet2.Range("H25") = Sheets("Resolution").Cells(x, 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...