Получение ошибки «Не удается получить свойство Match класса WorksheetFunction» - PullRequest
0 голосов
/ 23 января 2019

Я получаю указанную ошибку при выполнении следующей строки кода:

Check_Row = Application.WorksheetFunction.Match(ActiveCell, Application.WorksheetFunction.Index(Selection, 0, 1), 0)

И мои ActiveCell и Выбор кажутся правильно определенными - ActiveCell содержит некоторый текст, а первый столбец Выбор содержит ячейка со значением совпадения ActiveCell . Кроме того, когда я пытаюсь запустить почти такой же код (ниже) в только что открытом листе Excel, он работает нормально?

Sub Test()

Range("start").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
test_selection = Selection

Range("A8").Select

Check_Row = Application.WorksheetFunction.Match(ActiveCell,Application.WorksheetFunction.Index(test_selection, 0, 1), 0)

Range("A9").Value = Check_Row

End Sub

enter image description here

У кого-нибудь есть идея, что я мог бы пропустить здесь? Что может быть причиной этой проблемы?

1 Ответ

0 голосов
/ 23 января 2019

Вы можете добиться того, что пытаетесь сделать, используя .Columns(1) вместо индексации диапазона. Я также обновил ваш код, чтобы не использовать операторы Select. Вы должны обновить первый With с правильной ссылкой на лист, на котором он включен, вместо использования ActiveSheet

Option Explicit
Sub Test()
    Dim test_selection As Range
    Dim Check_Row As Long

    ' Update with your sheet reference
    With ActiveSheet
        set test_selection = .Range("start").CurrentRegion

        Check_Row = WorksheetFunction.Match(.Range("E17").Value2, test_selection.Columns(1), 0)

        .Range("E25").Value = Check_Row
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...