2010-10-07 9 views
1

Есть ли способ извлечь имя книги, но затем извлечь только ее часть. Любая версия Excel будет штраф предпочтительно 2003Excel VBA или функция извлечения имени и данных рабочей книги из рабочей книги

Например

"Help_TicketID123456788.xls" 
"Help_TicketID563565464.xls" 

...

Итак, я хотел бы, чтобы извлечь ID numbers и поместить их в колонну на мастер рабочий лист в другой книге.

Кроме того, я хотел бы извлечь некоторые данные из определенных столбцов (всегда одинаковые столбцы) из каждой книги и поместить их в рабочий лист.

спасибо !!

ответ

0

В вашей главной электронной таблице вы можете написать процедуру VBA, чтобы перебрать все файлы xls в каталоге, извлечь идентификационный номер из каждого имени файла и затем открыть каждый файл, чтобы извлечь другие данные. Это должно вам начать:

Sub RunCodeOnAllXLSFiles() 
Dim lCount As Long 
Dim wbResults As Workbook 
Dim wbCodeBook As Workbook 

Application.ScreenUpdating = False 
Application.DisplayAlerts = False 
Application.EnableEvents = False 

On Error Resume Next 
Set wbCodeBook = ThisWorkbook 
    With Application.FileSearch 
     .NewSearch 
     'Change path to suit 
     .LookIn = "C:\MyDocuments\TestResults" 
     .FileType = msoFileTypeExcelWorkbooks 
     'Optional filter with wildcard 
     .Filename = "Help_TicketID*.xls" 
      If .Execute > 0 Then 'Workbooks in folder 
       For lCount = 1 To .FoundFiles.Count 'Loop through all 
        'Extract ticket # 
        '.FoundFiles(lCount) is the filename 

        'Open Workbook x and Set a Workbook variable to it 
        Set wbResults = Workbooks.Open(Filename:=.FoundFiles(lCount), UpdateLinks:=0) 

        'Read the data from wbResults and write to your master spreadsheet 

        wbResults.Close SaveChanges:=False 
       Next lCount 
      End If 
    End With 
On Error GoTo 0 
Application.ScreenUpdating = True 
Application.DisplayAlerts = True 
Application.EnableEvents = True 
End Sub 

Источник: http://www.ozgrid.com/VBA/loop-through.htm

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