Здравствуйте уважаемые форумчане! Помогите, пожалуйста. Мне необходимо в файле Excel с листов 1, 2, 3 скопировать определенные столбцы (с 1 по 23) (на каждом из листов 1, 2 и 3, столбцы находятся в одинаковой последовательности) на лист СВОД. Я нашла макрос, который просто копирует ВСЕ листы из книги на новый лист. Как мне его подкорректировать, чтобы я могла копировать только конкретные листы и только конкретные столбцы? Еще я заметила, что макрос копирует на сводный лист полностью таблицу с заголовками. Мне копирование каждый раз заголовков не нужно. И таблицы с копируемых листов (1, 2, 3) – это умные таблицы. Пример исходного файла и желаемого результата во вложении. Пример макроса ниже. Заранее благодарю за ответ!
Sub Combine() 'Update by Extendoffice Dim i AsInteger Dim xTCount AsVariant Dim xWs As Worksheet OnErrorResumeNext
LInput:
xTCount = Application.InputBox("The number of title rows", "", "1") IfTypeName(xTCount) = "Boolean"ThenExitSub IfNotIsNumeric(xTCount) Then
MsgBox "Only can enter number", , "Kutools for Excel" GoTo LInput EndIf Set xWs = ActiveWorkbook.Worksheets.Add(Sheets(1))
xWs.Name = "Свод"
Worksheets(2).Range("A1").EntireRow.Copy Destination:=xWs.Range("A1") For i = 2To Worksheets.Count
Worksheets(i).Range("A1").CurrentRegion.Offset(CInt(xTCount), 0).Copy _
Destination:=xWs.Cells(xWs.UsedRange.Cells(xWs.UsedRange.Count).Row + 1, 1) Next EndSub
Здравствуйте уважаемые форумчане! Помогите, пожалуйста. Мне необходимо в файле Excel с листов 1, 2, 3 скопировать определенные столбцы (с 1 по 23) (на каждом из листов 1, 2 и 3, столбцы находятся в одинаковой последовательности) на лист СВОД. Я нашла макрос, который просто копирует ВСЕ листы из книги на новый лист. Как мне его подкорректировать, чтобы я могла копировать только конкретные листы и только конкретные столбцы? Еще я заметила, что макрос копирует на сводный лист полностью таблицу с заголовками. Мне копирование каждый раз заголовков не нужно. И таблицы с копируемых листов (1, 2, 3) – это умные таблицы. Пример исходного файла и желаемого результата во вложении. Пример макроса ниже. Заранее благодарю за ответ!
Sub Combine() 'Update by Extendoffice Dim i AsInteger Dim xTCount AsVariant Dim xWs As Worksheet OnErrorResumeNext
LInput:
xTCount = Application.InputBox("The number of title rows", "", "1") IfTypeName(xTCount) = "Boolean"ThenExitSub IfNotIsNumeric(xTCount) Then
MsgBox "Only can enter number", , "Kutools for Excel" GoTo LInput EndIf Set xWs = ActiveWorkbook.Worksheets.Add(Sheets(1))
xWs.Name = "Свод"
Worksheets(2).Range("A1").EntireRow.Copy Destination:=xWs.Range("A1") For i = 2To Worksheets.Count
Worksheets(i).Range("A1").CurrentRegion.Offset(CInt(xTCount), 0).Copy _
Destination:=xWs.Cells(xWs.UsedRange.Cells(xWs.UsedRange.Count).Row + 1, 1) Next EndSub
Добрый день. Спасибо Вам большое! Подскажите, пожалуйста, как можно на копируемый лист добавить в самую первую строку заголовки столбцов? Мне нужно чтобы первый раз заголовок скопировался, а далее со второго третьего листа уже не копировался заголовок.
Добрый день. Спасибо Вам большое! Подскажите, пожалуйста, как можно на копируемый лист добавить в самую первую строку заголовки столбцов? Мне нужно чтобы первый раз заголовок скопировался, а далее со второго третьего листа уже не копировался заголовок.Vika101928
на копируемый лист добавить в самую первую строку заголовки столбцов
Код будет чуть отличаться:
Option Explicit
Sub СводныеДанные_для_Vika101928_v2() Dim wsTarget As Worksheet Dim wsSource As Worksheet Dim arrData AsVariant Dim lastRowSrc AsLong Dim i AsLong
With ThisWorkbook.Worksheets("СВОД")
.Range("A1:W" & .Rows.Count).ClearContents EndWith
Dim sheetNames AsVariant
sheetNames = Array("1", "2", "3")
Dim lastRowTgt AsLong
lastRowTgt = 2
For i = LBound(sheetNames) ToUBound(sheetNames) Set wsSource = ThisWorkbook.Sheets(sheetNames(i))
lastRowSrc = wsSource.Cells(wsSource.Rows.Count, 1).End(xlUp).Row If lastRowSrc < 2ThenGoTo NextSheet
If i = 0Then
ThisWorkbook.Worksheets("СВОД").Range("A1:W1").Value = wsSource.Range("A1:W1").Value EndIf
на копируемый лист добавить в самую первую строку заголовки столбцов
Код будет чуть отличаться:
Option Explicit
Sub СводныеДанные_для_Vika101928_v2() Dim wsTarget As Worksheet Dim wsSource As Worksheet Dim arrData AsVariant Dim lastRowSrc AsLong Dim i AsLong
With ThisWorkbook.Worksheets("СВОД")
.Range("A1:W" & .Rows.Count).ClearContents EndWith
Dim sheetNames AsVariant
sheetNames = Array("1", "2", "3")
Dim lastRowTgt AsLong
lastRowTgt = 2
For i = LBound(sheetNames) ToUBound(sheetNames) Set wsSource = ThisWorkbook.Sheets(sheetNames(i))
lastRowSrc = wsSource.Cells(wsSource.Rows.Count, 1).End(xlUp).Row If lastRowSrc < 2ThenGoTo NextSheet
If i = 0Then
ThisWorkbook.Worksheets("СВОД").Range("A1:W1").Value = wsSource.Range("A1:W1").Value EndIf