2016-10-20 3 views
0

У меня почти есть то, что я хочу, но, похоже, не может пройти весь путь туда. Я пытаюсь захватить данные сотен рабочих листов. Я хочу скопировать/вставить значения каждого листа, начиная с A5, и перейти в AG (строки меняются). Одна из проблем, которые были у меня раньше, - столбец A не всегда имеет значение, даже если остальная часть строки имеет значение. Столбец A не является жизненно важным для моего сбора данных, поэтому я начал копировать/вставлять B5.VBA Вставить значения и пропустить рабочие листы во время цикла

Это скопировано все, что я хотел скопировать, но несколько строк на каждом листе являются формулами, и мне нужно значение, вставленное. Здесь я действительно потерялся.

Наконец, есть два листа «Advanced» и «Pivot», которые мне не нужны на моем «Total» листе.

Вот что я использую:

Sub CombineData() 
    Dim Sht As Worksheet 
    For Each Sht In ActiveWorkbook.Worksheets 
    If Sht.Name <> "Total" And Sht.Range("B5").Value <> "" Then 
    Sht.Activate 
    LastRow = Range("B65536").End(xlUp).Row 
    Range("B5", Cells(LastRow, "AG")).Copy 
    Sheets("Total").Select 
    Range("B65536").End(xlUp).Offset(1, 0).Select 
    ActiveSheet.Paste 
    Else 
    End If 
    Next Sht 


    End Sub 

Любая помощь будет большим. Спасибо!

ответ

0

Что-то, как это должно работать для вас:

Sub CombineData() 

    Dim wb As Workbook 
    Dim ws As Worksheet 
    Dim wsTot As Worksheet 
    Dim aData As Variant 

    Set wb = ActiveWorkbook 
    Set wsTot = wb.Sheets("Total") 

    For Each ws In ActiveWorkbook.Sheets 
     If InStr(1, " " & wsTot.Name & " Advanced Pivot ", " " & ws.Name & " ", vbTextCompare) = 0 _ 
     And Len(Trim(ws.Range("B5").Value)) > 0 Then 
      aData = ws.Range("B5:AG" & ws.Cells(ws.Rows.Count, "B").End(xlUp).Row).Value 
      wsTot.Cells(wsTot.Rows.Count, "B").End(xlUp).Offset(1).Resize(UBound(aData, 1), UBound(aData, 2)).Value = aData 
      Erase aData 
     End If 
    Next ws 

End Sub 
+0

Спасибо! Я думал, что моя голова будет взрываться, ударяя ее о стену. – Trevor

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