Добрый день, помогите упростить макрос копирования данных из одной таблицы в другою.
Есть "исходная таблица" из которой данные по порядку (согласно названию столбцов) копируются в другую таблицу "итоговую",
причем существуют пустые столбцы ("Исходная таблица" 8 по счету столбце, и 6 по счету столбец в "Итоговой таблице"), где происходит прерывание.
Код получился слишком громоздкий, а т.к. в дальнейшем планируется около 500 столбцов, не представляю, будет ли работать макрос.
Можно ли записать код одной строкой, чтобы к примеру из первой таблицы с 5 по 50 копировались в другую таблицу с 10 по 55 столбец?
Есть "исходная таблица" из которой данные по порядку (согласно названию столбцов) копируются в другую таблицу "итоговую",
причем существуют пустые столбцы ("Исходная таблица" 8 по счету столбце, и 6 по счету столбец в "Итоговой таблице"), где происходит прерывание.
Код получился слишком громоздкий, а т.к. в дальнейшем планируется около 500 столбцов, не представляю, будет ли работать макрос.
Можно ли записать код одной строкой, чтобы к примеру из первой таблицы с 5 по 50 копировались в другую таблицу с 10 по 55 столбец?
Скрытый текст |
---|
Sub Save() Dim tblRab As ListObject, tblZadan As ListObject Dim lngLastRow As Long, lngRowsCount As Long Application.ScreenUpdating = False Set tblRab = Worksheets("Лист1").ListObjects("Таблица1") Set tblZadan = Worksheets("Лист1").ListObjects("Таблица2") lngLastRow = tblRab.Range.Rows.Count + 1 lngRowsCount = tblZadan.DataBodyRange.Rows.Count tblRab.Range.Cells(lngLastRow, 3).Resize(lngRowsCount, 1).Value = tblZadan.DataBodyRange.Columns(5).Value tblRab.Range.Cells(lngLastRow, 4).Resize(lngRowsCount, 1).Value = tblZadan.DataBodyRange.Columns(6).Value tblRab.Range.Cells(lngLastRow, 5).Resize(lngRowsCount, 1).Value = tblZadan.DataBodyRange.Columns(7).Value tblRab.Range.Cells(lngLastRow, 7).Resize(lngRowsCount, 1).Value = tblZadan.DataBodyRange.Columns(9).Value tblRab.Range.Cells(lngLastRow, 6).Resize(lngRowsCount, 1).Value = tblZadan.DataBodyRange.Columns(10).Value tblRab.Range.Cells(lngLastRow, 9).Resize(lngRowsCount, 1).Value = tblZadan.DataBodyRange.Columns(11).Value tblRab.Range.Cells(lngLastRow, 10).Resize(lngRowsCount, 1).Value = tblZadan.DataBodyRange.Columns(12).Value ......и т.д. |