2016-06-16 4 views
1
y = Application.WorksheetFunction.Match(51187, Sheets("New Master Data 6.1").Range(Cells(1, 1), Cells((Rows.Count), 1)), 0) 

Я не могу найти что-то не так с моим синтаксисом. Помогите пожалуйста:Синтаксис VBA по методу совпадения

+0

Закрыть дубликат [Подсчитать количество строк на другом листе] (http://stackoverflow.com/questions/27763089/count-the-number-of-rows-in-another-sheet/27763394#27763394). – Jeeped

ответ

2

Если «Новые основные данные 6.1» не является активным листом, тогда ваш код будет ошибочным, потому что в обычном модуле кода любой экземпляр Cells() без квалифицированного листа будет ссылаться на активный лист.

Я хотел бы использовать что-то вроде:

With Sheets("New Master Data 6.1") 
    y = Application.Match(51187, .Columns(1), 0) 
End with 

If Not IsError(y) Then 
    'do something with y 
Else 
    'value was not found 
End If 

Обратите внимание, что сбросив WorksheetFunction позволяет проверить возвращаемое значение, вместо того, что вызвало ошибку во время выполнения, когда нет матча.

+0

@ Jeeped - извините: я ненавижу, когда это происходит ... –

+0

Обратите внимание, что y не может быть длинным; это должен быть вариант, чтобы поймать ошибку – Jeeped

Смежные вопросы