以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  word vba 怎么无法打印出来文件呢?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=169834)

--  作者:cnsjroom
--  发布时间:2021/7/2 17:04:00
--  word vba 怎么无法打印出来文件呢?
word vba 怎么无法打印出来文件呢?麻烦老师帮忙看看!

Dim dy As WinForm.ComboBox = e.Form.Controls("打印机")
Dim t3 As WinForm.TextBox = e.Form.Controls("单元格行")
Dim t4 As WinForm.TextBox = e.Form.Controls("单元格列")
Dim t5 As WinForm.TextBox = e.Form.Controls("文件目录")
Dim t6 As WinForm.TextBox = e.Form.Controls("单元格新值")
Dim t7 As WinForm.TextBox = e.Form.Controls("运行状态")
Dim js As WinForm.Label = e.Form.Controls("计数")
Dim wj As WinForm.ComboBox = e.Form.Controls("文件后缀")
Dim abc As Integer= 0
Dim dt = t7.BaseControl
Dim App As New MSWord.Application
If dy.text=""then
    MessageBox.Show("请选择打印机!")
Else
    If t5.value="" Then
        MessageBox.Show("请输入文件所在目录")
    Else
        For Each File As String In FileSys.GetFiles(t5.value)
            Dim ifo As new FileInfo(File)
            If ifo.Name.Contains("~$") Then
            Else
                If ifo.Extension.Contains(wj.text) Then
                    Dim doc As Object = app.Documents.Open(file)
                    app.ActiveWindow.Selection.WholeStory
                    doc.PrintOut(ActivePrinter:=dy.text)
                    abc=abc+1
                    App.Quit
                    js.Text= "已完成" & abc & "件/次!"
                    t7.Text= t7.Text & vbcrlf & "【" & ifo.Name & "】记录,已加入打印队列!"
                    t7.SelectionStart = t7.Text.Length
                    dt.ScrollToCaret
                    Application.DoEvents
                End If
            End If
            Dim sc As WinForm.RadioButton = e.Form.Controls("打印后是否删除文件")
            If sc.Checked=True
                If FileSys.FileExists(File) Then \'如果指定的文件存在
                    FileSys.DeleteFile(File,2,2) \'则彻底删除之
                End If
            End If
        Next
    End If
End If

--  作者:有点蓝
--  发布时间:2021/7/2 17:30:00
--  
看不出什么问题,看看打印执行没有

msgbox(1)
doc.PrintOut(ActivePrinter:=dy.text)
msgbox(2)

如果执行了就是打印机和打印驱动的问题了

--  作者:cnsjroom
--  发布时间:2021/7/2 17:42:00
--  回复:(有点蓝)看不出什么问题,看看打印执行没有ms...

msgbox(1)
doc.PrintOut(ActivePrinter:=dy.text)
msgbox(2)
两个都没有弹出来哦 也没有打印出来

是不是msword  vba代码没有使用对呢?

会报错:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:窗口,窗口1,Button2,Click
详细错误信息:
未找到类型“DocumentClass”的公共成员“PrintOut”。
[此贴子已经被作者于2021/7/2 18:27:49编辑过]

--  作者:有点蓝
--  发布时间:2021/7/3 8:53:00
--  

Dim Ws As MSExcel.WorkSheet = 
doc.WorkSheets(1)
Ws.PrintOut(ActivePrinter:=dy.text)

--  作者:cnsjroom
--  发布时间:2021/7/3 10:38:00
--  回复:(有点蓝)http://www.foxtable.com/webhelp/to...
怎么修改成msword呢?
--  作者:有点蓝
--  发布时间:2021/7/3 11:23:00
--  
哦,看错了,试试

                 Dim doc As Object = app.Documents.Open(file)
                    app.ActiveWindow.Selection.WholeStory
doc.ActivePrinter = dy.text
                    doc.PrintOut

--  作者:cnsjroom
--  发布时间:2021/7/3 11:44:00
--  回复:(有点蓝)哦,看错了,试试    ...
老师  现在是提示

未找到类型“DocumentClass”的公共成员“ActivePrinter”。

--  作者:有点蓝
--  发布时间:2021/7/3 12:04:00
--  
app.ActivePrinter = dy.text
--  作者:cnsjroom
--  发布时间:2021/7/3 12:31:00
--  回复:(有点蓝)app.ActivePrinter = dy.text
现在可以打印了  但是指定文件夹下 如果有多个word文件  只能正常打印一个  其他的就提示如下错误:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:窗口,窗口1,Button2,Click
详细错误信息:
异常来自 HRESULT:0x800A16C1

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:窗口,窗口1,Button2,Click
详细错误信息:
被呼叫方拒绝接收呼叫。 (异常来自 HRESULT:0x80010001 (RPC_E_CALL_REJECTED))

--  作者:有点蓝
--  发布时间:2021/7/3 14:23:00
--  
App.Quit放到最后一行