2014-10-23 3 views
0

Надеюсь, вы можете мне помочь. Я пытаюсь использовать свой первый скрипт VBA, который включает функцию, которая должна перейти во внешний файл excel, скопировать несколько ячеек и вставить его обратно в мой основной лист excel.Создание функции, которая копирует из разных строк

Мои вопросы тогда. Как я должен построить приведенный ниже сценарий в функцию, из которой копии мулируют ячейки и вернули их в B11: B17, например?

'## Open former report first: 
Set x = Workbooks.Open(strPath) 

'Now, copoy what you want from x: 
x.ActiveSheet.Range("F70:F76").Copy 

'Now, paste to my repport worksheet: 
Windows(myName).Activate 
ActiveSheet.Range("B11").PasteSpecial xlPasteValues, Transpose:=True 

'Close x: 
x.Close 

ответ

0

Я предполагаю, что x является переменной рабочей книги. Установив опцию transpose: = true, ваши результаты будут вставляться в B11: G11, а не B11: B17.

Я бы рекомендовал использовать переменную рабочей книги для вашей текущей книги, а не команду windows.activate. Что-то вроде этого.

Dim wbActive as workbook 
Dim wbFormerRpt as workbook 

set wbActive = Thisworkbook 

'## Open former report first: 
Set wbFormerRpt = Workbooks.Open(strPath) 

'Now, copoy what you want from x: 
wbFormerRpt.ActiveSheet.Range("F70:F76").Copy 

'Now, paste to my repport worksheet: 
wbActive.Activate 
wbActive.ActiveSheet.Range("B11").PasteSpecial xlPasteValues', Transpose:=True 

wbFormerRpt.Close 

Надеюсь, что это поможет.