Хотелось бы скопировать содержание однотипных таблиц одного файла в одну существующую сводную (первый лист). Так, чтобы в первом столбце существующей сводной таблицы упоминалось название каждой из исходных таблиц.
Макро на простое копирование таблиц уже имеется. А вот как получить название листов в первом столбце?
Буду очень благодарна за подсказку!
Имеющееся Макро:
[vba]
Код
Sub Test() Dim Wks As Worksheet Dim RG As Range Dim strLC As String Dim i As Integer
For i = 2 To Worksheets.Count With Worksheets(i).UsedRange strLC = .Cells(.Rows.Count, .Columns.Count).Address Set RG = .Range("B31:" & strLC) RG.Copy Destination:= _ Sheets("SUM").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) End With Next i
End Sub
[/vba]
Добрый день,
Хотелось бы скопировать содержание однотипных таблиц одного файла в одну существующую сводную (первый лист). Так, чтобы в первом столбце существующей сводной таблицы упоминалось название каждой из исходных таблиц.
Макро на простое копирование таблиц уже имеется. А вот как получить название листов в первом столбце?
Буду очень благодарна за подсказку!
Имеющееся Макро:
[vba]
Код
Sub Test() Dim Wks As Worksheet Dim RG As Range Dim strLC As String Dim i As Integer
For i = 2 To Worksheets.Count With Worksheets(i).UsedRange strLC = .Cells(.Rows.Count, .Columns.Count).Address Set RG = .Range("B31:" & strLC) RG.Copy Destination:= _ Sheets("SUM").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) End With Next i
Прошу прощения, не разобралась, как включить режим правки.
Переписываю код сюда:
[vba]
Код
Sub Test() Dim Wks As Worksheet Dim RG As Range Dim strLC As String Dim i As Integer
For i = 2 To Worksheets.Count With Worksheets(i).UsedRange strLC = .Cells(.Rows.Count, .Columns.Count).Address Set RG = .Range("B31:" & strLC) RG.Copy Destination:= _ Sheets("SUM").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) End With Next i
End Sub
[/vba]
Прошу прощения, не разобралась, как включить режим правки.
Переписываю код сюда:
[vba]
Код
Sub Test() Dim Wks As Worksheet Dim RG As Range Dim strLC As String Dim i As Integer
For i = 2 To Worksheets.Count With Worksheets(i).UsedRange strLC = .Cells(.Rows.Count, .Columns.Count).Address Set RG = .Range("B31:" & strLC) RG.Copy Destination:= _ Sheets("SUM").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) End With Next i
Sub Test() Dim Wks As Worksheet Dim RG As Range Dim strLC As String Dim i As Long Dim iCopyRowsCount As Long
For i = 2 To Worksheets.Count With Worksheets(i).UsedRange strLC = .Cells(.Rows.Count, .Columns.Count).Address Set RG = .Range("B31:" & strLC) iCopyRowsCount = .Rows.Count - 30 End With With Sheets("SUM").Cells(Rows.Count, 2).End(xlUp) RG.Copy Destination:=.Offset(1, 0) .Offset(1, -1).Resize(iCopyRowsCount) = Worksheets(i).Name End With Next i
End Sub
[/vba]
[vba]
Код
Sub Test() Dim Wks As Worksheet Dim RG As Range Dim strLC As String Dim i As Long Dim iCopyRowsCount As Long
For i = 2 To Worksheets.Count With Worksheets(i).UsedRange strLC = .Cells(.Rows.Count, .Columns.Count).Address Set RG = .Range("B31:" & strLC) iCopyRowsCount = .Rows.Count - 30 End With With Sheets("SUM").Cells(Rows.Count, 2).End(xlUp) RG.Copy Destination:=.Offset(1, 0) .Offset(1, -1).Resize(iCopyRowsCount) = Worksheets(i).Name End With Next i