Выдача копий листов в Excel - PullRequest
1 голос
/ 02 января 2012

Я пишу код для копирования листа в Excel из одной рабочей книги в другую, и у меня возникает следующая проблема:

 Set xlsAppSource = CreateObject("Excel.Application")
 Set xlsWBSource = xlsAppSource.Workbooks.Open(strWBSource)  

 Set xlsAppCible = CreateObject("Excel.Application")
 Set xlsWBCible = xlsAppCible.Workbooks.Open(strWBCible)

 xlsWBSource.Sheets(1).Copy before:= xlsWBSource.Sheets(1)

И я получаю ERROR 1004.

Я знаю, что ошибка происходит от:

xlsWBSource.Sheets(1) и xlsWBSource.Sheets(1)

, потому что при изменении последнего оператора на:

xlsWBSource.activate

ActiveWorkbook.Sheets(strSheetSource).Copy before:= [any working sheet]

оно работает.

Но так как я не могу активировать 2 книги, это не способ решить мою проблему.

Есть идеи, почему она не работает?

спасибо

1 Ответ

2 голосов
/ 02 января 2012

Если вы пытаетесь скопировать из xlsWBSource в xlsWBCible, вам следует использовать только один экземпляр Excel , в настоящее время вы открываете две отдельные версии с двумя CreateObjects - двумяотдельные экземпляры не могут «говорить», поэтому возникает ошибка

, тогда как это будет работать:

Set xlsAppSource = CreateObject("Excel.Application")
Set xlsWBSource = xlsAppSource.Workbooks.Open(strWbsource)
Set xlsWBcible = xlsAppSource.Workbooks.Open(strWBcible)
xlsWBSource.Sheets(1).Copy before:=xlsWBcible.Sheets(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...