Всем привет! В рамках автоматизации табличной работы понадобилось написать простой макрос копирования с двух листов (ДС и ДС1) на третий (Доп) последовательно. Первую строку на "Доп" оставить пустой, далее без пробелов. Количество строк на ДС и ДС1 может быть разным; количество столбцов - одинаковое. Посетив несколько форумов, написала следующий текст: [vba]
Код
Private Sub Copy() ActiveWorkbook.Sheets("Доп").Activate With Sheets("ДС") Range("A2").Copy.Cells(Rows.Count, 2).End (xlUp) ActiveSheet.Paste End With With Sheets("ДС1") Range("A2").Copy.Cells(Rows.Count, 2).End (xlUp) ActiveSheet.lastUsedRow.Paste.Offset -1 End With End Sub
[/vba]
Программа ругается на третью строчку. Т.к. я не разбираюсь, прошу у профи помочь скорректировать (файл на всякий случай прикрепила).
Всем привет! В рамках автоматизации табличной работы понадобилось написать простой макрос копирования с двух листов (ДС и ДС1) на третий (Доп) последовательно. Первую строку на "Доп" оставить пустой, далее без пробелов. Количество строк на ДС и ДС1 может быть разным; количество столбцов - одинаковое. Посетив несколько форумов, написала следующий текст: [vba]
Код
Private Sub Copy() ActiveWorkbook.Sheets("Доп").Activate With Sheets("ДС") Range("A2").Copy.Cells(Rows.Count, 2).End (xlUp) ActiveSheet.Paste End With With Sheets("ДС1") Range("A2").Copy.Cells(Rows.Count, 2).End (xlUp) ActiveSheet.lastUsedRow.Paste.Offset -1 End With End Sub
[/vba]
Программа ругается на третью строчку. Т.к. я не разбираюсь, прошу у профи помочь скорректировать (файл на всякий случай прикрепила).Nat
Сообщение отредактировал Nat - Понедельник, 20.01.2014, 22:41
И кто Вас учил так называть макросы? Copy - зарезервированное слово VB. Не стоит. [vba]
Код
Private Sub NatCopy() Dim sh As Worksheet With ThisWorkbook Set sh = .Sheets("Доп") With .Sheets("ДС") sh.Range("A2").Copy .Cells(.Rows.Count, 2).End(xlUp)(2) End With With .Sheets("ДС1") sh.Range("A2").Copy .Cells(.Rows.Count, 2).End(xlUp)(2) End With End With End Sub
[/vba]
И кто Вас учил так называть макросы? Copy - зарезервированное слово VB. Не стоит. [vba]
Код
Private Sub NatCopy() Dim sh As Worksheet With ThisWorkbook Set sh = .Sheets("Доп") With .Sheets("ДС") sh.Range("A2").Copy .Cells(.Rows.Count, 2).End(xlUp)(2) End With With .Sheets("ДС1") sh.Range("A2").Copy .Cells(.Rows.Count, 2).End(xlUp)(2) End With End With End Sub
Ок, не буду. Скопировала Ваш марос в файл...в нем что-то не то, не работает Кстати, по ходу я файл в первое сообщение забыла прикрепить - исправляюсь
Ок, не буду. Скопировала Ваш марос в файл...в нем что-то не то, не работает Кстати, по ходу я файл в первое сообщение забыла прикрепить - исправляюсь Nat
Ок, не буду. Скопировала Ваш марос в файл...в нем что-то не то, не работает Кстати, по ходу я файл в первое сообщение забыла прикрепить - исправляюсь
Ок, не буду. Скопировала Ваш марос в файл...в нем что-то не то, не работает Кстати, по ходу я файл в первое сообщение забыла прикрепить - исправляюсь Nat
Private Sub NatCopy() Dim sh As Worksheet With ThisWorkbook Set sh = .Sheets("Доп") With .Sheets("ДС") .Range("A2").CurrentRegion.Copy sh.Cells(.Rows.Count, 1).End(xlUp)(2) End With With .Sheets("ДС1") .Range("A2").CurrentRegion.Copy sh.Cells(.Rows.Count, 1).End(xlUp)(2) End With End With End Sub
[/vba]
[vba]
Код
Private Sub NatCopy() Dim sh As Worksheet With ThisWorkbook Set sh = .Sheets("Доп") With .Sheets("ДС") .Range("A2").CurrentRegion.Copy sh.Cells(.Rows.Count, 1).End(xlUp)(2) End With With .Sheets("ДС1") .Range("A2").CurrentRegion.Copy sh.Cells(.Rows.Count, 1).End(xlUp)(2) End With End With End Sub