2015-07-28 2 views
0

Я не опытный пользователь VBA, но я считаю, что этот вопрос возможен. Я пытаюсь скомпилировать данные из нескольких листов (100+) в книге Excel в «сводную таблицу». Каждый лист идентичен, и данные будут вытаскиваться из одной ячейки в каждом листе в одну и ту же ячейку в сводке.Вытягивание данных из одной ячейки в несколько вкладок

Есть ли код, который сделает это для меня, а также может исключить некоторые другие рабочие листы? Если да, то какой код?

+0

Какие рабочие таблицы вы хотели бы исключить? – MatthewD

+0

Есть пара шаблонов, которые используются для копирования, когда нам нужны новые данные. Нам не нужно ничего извлекать из них, так как они пусты. – Nick

+0

Добавлена ​​проверка шаблона слова в названии листа на мой ответ ниже. – MatthewD

ответ

0
Dim ws As Excel.Worksheet 
Dim TargetSheet As Excel.Worksheet 
Dim iIndexas Long 
Dim lRow As Long 
Dim strValue as string 

    lRow = 1 

    'Loop each worksheet in the workbook 
    For iIndex = 1 To Application.Worksheets.count 

     'Get the value from this worksheet 
     Set ws = Application.Worksheets(iIndex) 
     ws.Activate 

     'Check if the name has template in it 
     if instr(ucase(ws.name), "TEMPLATE") = 0 then 

      strValue = ws.Range("B4").Value 

      'Switch to the target sheet 
      Set TargetSheet = ActiveWorkbook.Sheets("SummarySheetName") 
      TargetSheet.Activate 

      'Write the value 
      TargetSheet.Range("C" & lRow).Value = strValue 

      'Increment your row 
      lRow = lRow + 1 

     End if 

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