2013-05-21 8 views
0

Это мой второй день с использованием VBA и excel.Id, как мой макрос, чтобы автоматически копировать значения из woksheet «Consulting- для Paracon_aax.xls "для диапазона" E24 "до" Q24 "и вставьте значения на лист с именем« 2014 - XPERT.xlsm »в диапазоне« E9-Q9 »в листе с именем Delivery.This - это то, что я придумать до сих пор.Как я могу получить макрос для автоматической копирования данных из диапазона одной книги в другую область в книге 2

Sub UpdateLinks() 

'open the source workbook and select the source sheet 
Workbooks.Open Filename:="C:\Users\desmondm\Desktop\Consulting-for Paracon_aax.xls" 

Sheets("Sheet1").Select 

' copy the source range 

Sheets("Sheet1").Range("E24").Select 

Selection.Copy 

' select current workbook and paste the value at E9 
Workbooks("2014 - XPERT.xlsm").Activate 

Sheets("Delivery").Select 

Sheets("Delivery").Range("E9").Select 

ActiveSheet.Paste 

Application.CutCopyMode = False 

ActiveWorkbook.Save 

End Sub 

Но проблема с моим кодом, что мой макрос копирует только ячейки E24 из-за Консалтинговой Paracon_aax.xls до E9 в листе доставки в пределах 2014 - XPERT.xlsm wokbook.I'm застряли в попытке чтобы сделать копию макроса от E24 до Q24 в одной книге и вставить значения от E9 до Q9 в другую книгу на листе доставки.

ответ

0

Дайте этому попытку, я консолидирован немного для вас, но в основном вы должны указать полный диапазон ячеек для копирования (ранее вы только копирование E24.

Sub UpdateLinks() 
Dim wbSource As Workbook 
Dim wbDestination As Workbook 

'open the source workbook and select the source sheet 
Set wbSource = Workbooks.Open(_ 
    Filename:="C:\Users\desmondm\Desktop\Consulting-for Paracon_aax.xls") 

'Set the destition workbook variable 
Set wbDestination = Workbooks("2014 - XPERT.xlsm") 

'copy the source range 
wbSource.Sheets("Sheet1").Range("E24:Q24").Copy 

'paste the value at E9 
wbDestination.Sheets("Delivery").Range("E9:Q9").PasteSpecial (xlPasteValues) 

Application.CutCopyMode = False 

ActiveWorkbook.Save 

End Sub 

И, слово в мудрый :) соблазнительно использовать методы Select и Activate - особенно когда вы новичок в VBA, потому что именно так записывает ваши макросы, но в 99% случаев это не нужно, и это более эффективно/лучше просто используйте объектные переменные и явно ссылайтесь на них, вместо того, чтобы полагаться на Selection и ActiveWorkbook или ActiveCell и т. д.

Смежные вопросы