Почему я получаю ошибку 1004 при вызове макроса из Word документа, но не из Excel? - PullRequest
2 голосов
/ 21 июня 2011

В файле Word у меня есть макрос, который открывает файл Excel и вызывает макрос в этом файле. (Я использую VBA.) Это простой код из Word:

Set oExcelApp = CreateObject("Excel.Application")
Set oWorkbook = oExcelApp.workbooks.Open("C:\Documents and Settings\Eddy\Mina dokument\Insajt\Arbeten\Prido\Affärssystem\www\modules\mod_order\eco.xls")
oExcelApp.Visible = True
oExcelApp.Run "'ECO.xls'!Ritning"

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

Ошибка времени выполнения «1004» Свойство PrintArea нельзя ввести для класса, PageSetup

Если я выбираю режим отладки, эта строка подсвечивается:

.PrintArea = "$A$1:$O$49;$Q$1:$AE$49;$Q$50:$AE$97;$AG$50:$AU$97"

Весь раздел кода такой:

   If Sheets("Beräkningar").Cells(6, 2) = "4V" Then 
        With Sheets("Ritn").PageSetup 
            .PrintArea = "$A$1:$O$49;$Q$1:$AE$49;$Q$50:$AE$97;$AG$50:$AU$97" 
            .Zoom = 85 
        End With 
        Sheets("Ritn").PrintOut 
    End If

Теперь к действительно странной вещи. Если я отменяю вызов макроса в файле Excel и просто вручную вызываю тот же макрос, он работает как чудо. То же самое, если я вручную открываю файл Excel и запускаю макрос, тогда все работает нормально.

1 Ответ

0 голосов
/ 22 июня 2011

Попробуйте использовать список с разделителями-запятыми вместо точки с запятой

.PrintArea = "$A$1:$O$49,$Q$1:$AE$49,$Q$50:$AE$97,$AG$50:$AU$97"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...