Страницы: 1
RSS
Макрос копирования изменяемых диапазонов на другой лист
 
Доброго времени суток!

Работаю над файлом и на виндоусе, и на маке. На двух листах есть две умные таблицы. Необходимо копировать определенные диапазоны из одной таблицы в другую. По примерам набросал следующий макрос:

Код
Sub Copy_To_Sale()
 Worksheets("Delivery"  ;)  .Range("B4:F4" & Cells(Rows.Count, 1).End(xlUp).Row).Copy Worksheets("Sale"  ;)  .Range("B4:F4" & Cells(Rows.Count, 1).End(xlUp).Row)
 Worksheets("Delivery"  ;)  .Range("L4:L4" & Cells(Rows.Count, 1).End(xlUp).Row).Copy Worksheets("Sale"  ;)  .Range("N4:N4" & Cells(Rows.Count, 1).End(xlUp).Row)
 Worksheets("Delivery"  ;)  .Range("R4:R4" & Cells(Rows.Count, 1).End(xlUp).Row).Copy Worksheets("Sale"  ;)  .Range("H4:H4" & Cells(Rows.Count, 1).End(xlUp).Row)
End Sub


На маке макрос не работает. Прошу помощи с интеграцией оного под мак.
И сопутствующий вопрос: как можно улучшить данный код для того, чтобы во второй умной таблице, куда будут копироваться данные, автоматически увеличивалось кол-во строк, равное количеству строк в первой таблице?
Изменено: dbutovets - 20.05.2013 13:22:05
 
Здравствуйте.
Я мало, что понимаю в макросах, но в данном случае на Mac макрос работает, если его поместить в стандартный модуль (в файле Module1), кроме того, макрорекодер подсказал, что работать надо не с диапазонами, а со столбцами "умной" таблицы. Ваш код превратился в следующий:
Код
Sub Copy_To_Sale()
    Worksheets("Delivery").Range("delivery[[Столбец2]:[Столбец6]]").Copy Worksheets("Sale").Range("sale[Столбец2]")
    Worksheets("Delivery").Range("delivery[Столбец12]").Copy Worksheets("Sale").Range("sale[Столбец14]")
    Worksheets("Delivery").Range("delivery[Столбец18]").Copy Worksheets("Sale").Range("sale[Столбец8]")
End Sub

Сопутствующий ответ: если перед выполнением макроса установить курсор в таблицу sale, то строчки будут добавляться именно в таблицу
 
Спасибо за ответ!
К сожалению, при наличии во второй таблице итоговой строки возникают проблемы, строка копируется на нее (при условии, что в обе таблицы добавляется одна строка, со множеством строк такой проблемы не возникает, но возникает иная: если ячейка итоговой строки во второй таблице подкрашена своим цветом, то этот цвет скопируется на все добавленные ячейки)
Изменено: dbutovets - 23.05.2013 10:28:30 (уточнение + прикрепление файла)
Страницы: 1
Наверх