-1

Я начинающий макрос, пытаюсь добавить код макроса, который найдет книги, в которых первые 6 символов в имени файла - "Пользовательский", а любые символы после него допустимы. Код будет добавлен в макрос ниже. Это желательно, потому что у меня часто есть много других открытых книг с именами файлов, которые не начинаются с символов "Пользовательский", и я не хочу собирать какие-либо данные из них.

Я предполагаю, что это повлечет за собой изменение строкового кода, который теперь читает

«Если wb.Имя <> ThisWorkbook.Имя Тогда "

что-то вроде:

«Если wb.Имя = пользовательский * .xl?? Затем"

  • Excel 2010
  • Все файлы открыты.
  • Расширения файлов включают .xls, .xlxm, .xlxs
  • Включить только те файлы, в которых первые 6 букв имени файла являются «пользовательскими».

Код:

Sub getdata()

' Brings data (Tables)from workbooks that are open places the data in one large table in a workbook.

    Dim sh As Worksheet, wb As Workbook, lr As Long..
    Set sh = ThisWorkbook.Sheets(1) 'Edit sheet name  
    For Each wb In Application.Workbooks  
        If wb.Name <> ThisWorkbook.Name Then  
            ''lr = wb.Sheets(1).Cells.Find("*", , xlFormulas, xlPart, xlByRows, xlPrevious).Row  ' goes to bottom of data  
            lr = wb.Sheets(1).Cells.Find("*", , xlFormulas, xlPart, xlByRows, xlPrevious).Offset(-3, 0).Row              If Application.CountA(sh.Rows(4)) = 0 Then  
                wb.Sheets(1).Range("A4:P" & lr).Copy sh.Range("A4")  
            Else  
                wb.Sheets(1).Range("A4:P" & lr).Copy sh.Cells(Rows.Count, 1).End(xlUp)(2)  
            End If  
        End If  
    Next  
End Sub

1 ответ1

0

Ваша попытка близка, два замечания:

  • всегда используйте " вокруг строк
  • VBA не поддерживает подстановочные знаки для сравнения строк

использовать этот:
If Left(wb.Name,6) = "custom"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .