Исполняемые инструкции в VBA завершаются одним из двух токенов:
- токен-разделитель инструкций
:
- токен конца строки
\r\n
(т.е.vbNewLine
/ Chr(10)
+ Chr(13)
)
Это сделало бы эту инструкцию неполной ...
Wst.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fPathFile,
... если бы 3-й параметр был необязательным,Поскольку это необязательно, конечная запятая является вполне приемлемой и интерпретируется как передача значения Variant/Empty
в качестве 3-го аргумента.
Таким образом, VBA называет это действительным утверждением и переходит к следующему:
Quality:=xlQualityStandard, _IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Э-э-э.Это похоже на список аргументов, но здесь ничего не вызывается, поэтому VBA запутался и не знает, в какую процедуру передать этот список аргументов.
То, что вы хотите, предназначено для двух физическихстроки считаются одной логической строкой .Вы можете сделать это, используя продолжение строки токен _
(пробел, за которым следует подчеркивание).
Wst.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fPathFile, _
Quality:=xlQualityStandard, _IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Таким образом, когда компилятор достигает конца первой строки,он знает, что инструкция продолжается на следующей строке.
Похоже, у вас было продолжение строки после аргумента Quality
, затем он удалил разрыв строки, но не подчеркивание - этот аргумент _IncludeDocProperties
должен быть IncludeDocProperties
.Не стесняйтесь добавлять столько, сколько вам нужно (но не более 20), чтобы сделать код проще для визуальной обработки:
Wst.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=fPathFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False