Sub Macro1()
'
' Macro1 Macro
' 宏在 2009-4-29 由 微软用户 录制
'
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=2, Pages:="", PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
我自己翻译的js
function jsPrint()
{
TANGER_OCX_OBJ = document.all.item("TANGER_OCX"); //获得word控件,专门用来编辑word的用在网页中的控件。可以不用管。
var mydoc = TANGER_OCX_OBJ.ActiveDocument; //得到Document对象
var app = mydoc.Application; //得到Application对象
app.PrintOut("",0,0,2,"",0,false,true,true,false,0,0,0,0); //打印代码
}
但是我翻译的有问题。执行到打印代码时app.PrintOut("",0,0,2,"",0,false,true,true,false,0,0,0,0); //打印代码
报此命令无效。
请指教
2 个解决方案
#1
VBA里那些参数可能不是按参数定义的顺序来给的,但在JS里不能通过指定参数名来改变参数的顺序。
所以你最好查查PrintOut的文档(应该在Office文档里有),看看参数顺序,再试试。
所以你最好查查PrintOut的文档(应该在Office文档里有),看看参数顺序,再试试。
#2
这是PrintOut文档中的说明:
expression.PrintOut(Background, Append, Range, OutputFileName, From, To, Item, Copies, Pages, PageType, PrintToFile, Collate, FileName, ActivePrinterMacGX, ManualDuplexPrint, PrintZoomColumn, PrintZoomRow, PrintZoomPaperWidth, PrintZoomPaperHeight)
这是你给的VBA的代码,很明显,上面第一个参数是Background,在下面这个参数是在中间给出来的,所以顺序肯定不对。
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=2, Pages:="", PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
按说明中的参数顺序,重新给JS参数吧。像Append等缺省了的参数,查文档看默认值,没默认值就自己看着办。
expression.PrintOut(Background, Append, Range, OutputFileName, From, To, Item, Copies, Pages, PageType, PrintToFile, Collate, FileName, ActivePrinterMacGX, ManualDuplexPrint, PrintZoomColumn, PrintZoomRow, PrintZoomPaperWidth, PrintZoomPaperHeight)
这是你给的VBA的代码,很明显,上面第一个参数是Background,在下面这个参数是在中间给出来的,所以顺序肯定不对。
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=2, Pages:="", PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
按说明中的参数顺序,重新给JS参数吧。像Append等缺省了的参数,查文档看默认值,没默认值就自己看着办。
#1
VBA里那些参数可能不是按参数定义的顺序来给的,但在JS里不能通过指定参数名来改变参数的顺序。
所以你最好查查PrintOut的文档(应该在Office文档里有),看看参数顺序,再试试。
所以你最好查查PrintOut的文档(应该在Office文档里有),看看参数顺序,再试试。
#2
这是PrintOut文档中的说明:
expression.PrintOut(Background, Append, Range, OutputFileName, From, To, Item, Copies, Pages, PageType, PrintToFile, Collate, FileName, ActivePrinterMacGX, ManualDuplexPrint, PrintZoomColumn, PrintZoomRow, PrintZoomPaperWidth, PrintZoomPaperHeight)
这是你给的VBA的代码,很明显,上面第一个参数是Background,在下面这个参数是在中间给出来的,所以顺序肯定不对。
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=2, Pages:="", PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
按说明中的参数顺序,重新给JS参数吧。像Append等缺省了的参数,查文档看默认值,没默认值就自己看着办。
expression.PrintOut(Background, Append, Range, OutputFileName, From, To, Item, Copies, Pages, PageType, PrintToFile, Collate, FileName, ActivePrinterMacGX, ManualDuplexPrint, PrintZoomColumn, PrintZoomRow, PrintZoomPaperWidth, PrintZoomPaperHeight)
这是你给的VBA的代码,很明显,上面第一个参数是Background,在下面这个参数是在中间给出来的,所以顺序肯定不对。
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=2, Pages:="", PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
按说明中的参数顺序,重新给JS参数吧。像Append等缺省了的参数,查文档看默认值,没默认值就自己看着办。