/ / Dlaczego iść Dostaję błąd 1004 podczas wywoływania makra z dokumentu programu Word, ale nie z programu Excel? - excel, vba, ms-word, automatyzacja

Dlaczego otrzymuję komunikat o błędzie 1004 podczas wywoływania makra z dokumentu programu Word, ale nie z programu Excel? - excel, vba, ms-word, automatyzacja

W pliku programu Word mam makro, które otwiera plik programu Excel i wywołuje makro w tym pliku. (Używam VBA.) Oto prosty kod z Worda:

Set oExcelApp = CreateObject("Excel.Application")
Set oWorkbook = oExcelApp.workbooks.Open("C:Documents and SettingsEddyMina dokumentInsajtArbetenPridoAffärssystemwwwmodulesmod_ordereco.xls")
oExcelApp.Visible = True
oExcelApp.Run ""ECO.xls"!Ritning"

Zostanie otwarty plik Excel, a makro zostanie uruchomione, ale pojawi się komunikat o błędzie (przetłumaczony ze szwedzkiego):

Błąd czasu wykonania „1004” Właściwość PrintArea nie może być wprowadzona dla klasy, PageSetup

Jeśli wybiorę tryb debugowania, ta linia jest podświetlona:

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

Cała sekcja kodu wygląda następująco:

   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

Teraz do naprawdę dziwnej rzeczy. Jeśli przerywam wywołanie makra w pliku Excel i po prostu ręcznie wywołam to samo makro, działa to jak urok. Tak samo, jeśli ręcznie otwieram plik Excel i uruchamiam makro, wszystko działa dobrze.

Odpowiedzi:

0 dla odpowiedzi № 1

Spróbuj użyć listy rozdzielanej przecinkami zamiast średnika

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