2016-01-22 2 views
2

В моем коде я ищу файл, имя которого включает bcst, но мой код не работает. Как я могу заставить его работать?String Содержит определенный текст

For Each mySubFolder In myFolder.SubFolders  
    Application.ScreenUpdating = False 
    Set ana = Workbooks.Open("C:\Users\Burak\Desktop\2MacroDegerlendirme.xlsm").Sheets("Sayfa1") 'Hangi sayfaya alınacak? 
    For Each myFile In mySubFolder.Files 
    Str = myFile.Name   
     If InStr(Str, "bcst") >= 0 Then 
+0

Почему вы не используете 'Dir' с' "* bcst *" 'в качестве имени файла? – Rory

+0

Возможная дубликатная ошибка [индексирование вне диапазона] (http://stackoverflow.com/questions/34942098/subscript-out-of-range-mistake) –

ответ

1

Глядя только на эту часть кода, я предполагаю, что ошибка в

If InStr(Str, "bcst") >= 0 Then

InStr принимает в качестве первого параметра начальную точку поиска. Также он возвращает 0, если шаблон не найден, поэтому он должен быть

If InStr(1, Str, "bcst") > 0 Then.

симпатичной альтернативой было бы использовать Like оператор:

If Str Like "*bcst*" Then

+2

Также обратите внимание на параметр «Параметр сравнения» и т. Д., Или преобразуйте все строки в нижнем регистре перед сравнением/поиском. –

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