2016-01-28 5 views
0

Пробовал это время и не могу получить свой синтаксис для вопроса!Имя рабочей книги как переменная

В принципе, на данный момент у меня есть WorkbookA.xlsm и мой код непосредственно ссылается на «WorkbookA.xlsm»

Когда моя книга распространяется, не все оставляет имя же и он вызывает подстрочный из ошибок диапазона

Ответ, вероятно, очень очевиден, но как я могу объявить книгу как переменную или аналогичную? thisworkbook.name?

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

Извините за глупый вопрос, но надеюсь, что вы сможете помочь!

+2

Да; Текущая рабочая тетрадь (то есть, где вы живете в коде) - это 'ThisWorkbook', ее имя -' ThisWorkbook.Name' –

+2

, иначе вы можете просто сказать «dim OrigWB как рабочая книга», а затем «Установить OrigWB = ActiveWorkbook», а затем просто работать с OrigWB вместо ActiveWorkbook или ThisWorkbook. Вам просто нужно объявить это, прежде чем открывать другие книги;) и для книги, которую вы открываете, будет такой же, но вместо «= ActiveWorkbook» это будет «= Workbooks.Open (* PathToYourWorkbook *)» – Kathara

ответ

1

Это должно работать

Option Explicit 

Sub WorkingWithDataFromOtherWorkBook() 

     'You can also Dim as Sheet and then set the sheet  
     Dim MasterWorkBook As Workbook 
     Dim DataSourceWorkBook As Workbook 

     Set MasterWorkBook = ThisWorkbook 
     'Set DataSourceWorkBook = Workbooks.Open(Filename:=" Full File Path Here") 
     Set DataSourceWorkBook = Workbooks.Open(Filename:="C:\Users\oosthjp\Desktop\Book1.xlsm") 

     'Simple copy paste code below 
     DataSourceWorkBook.Sheets("SheetReference").Range("SOMERANGE").Copy 
     MasterWorkBook.Sheets("SheetReference").Range("SOMERANGE").Paste 

     'Whatever other code you have goes here 

End Sub 
+1

Или удалите все переменные MasterWorkbook и используйте: ThisWorkBook.Sheets («SheetReference»). Диапазон («SOMERANGE»). Вставить – jkpieterse

+0

Хорошая точка, спасибо @jkpieterse –

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