以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]excel打印问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101795)

--  作者:baicaocao
--  发布时间:2017/6/7 11:06:00
--  [求助]excel打印问题

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170607110357.png
图片点击可在新窗口打开查看
提示错误。
请检查,是由于
 \'App.ActivePrinter = drp("打印机")
                    For ii As Integer = 0 To 10
                        App.ActivePrinter = drp("打印机") & " 在 Ne" & Format(ii, "00") & ":"
                    Next
这段代码引起的。请求高手解决。
  Try
                    Dim App As New Excel.Application
                    App.Visible = True
                    Dim Wb As Excel.Workbook = App.Workbooks.Open(fl)
                    Dim Ws As Excel.Worksheet = Wb.Worksheets(1)
                    App.Visible = False
                    Dim ps As New Printing.PrinterSettings
                    ps.PrinterName = drp("打印机")
                    \'App.ActivePrinter = drp("打印机")
                    For ii As Integer = 0 To 10
                        App.ActivePrinter = drp("打印机") & " 在 Ne" & Format(ii, "00") & ":"
                    Next

                    For Each ps1 As PaperSize In ps.PaperSizes
                        If ps1.PaperName = drp("纸张") Then
                            Ws.PageSetup.PaperSize = ps1.RawKind
                        End If
                    Next
                    Ws.PrintOut(ActivePrinter:=drp("打印机"))
                    Wb.Save()
                    App.Quit()
                Catch ex As Exception
                    MsgBox("出现了错误,错误内容:" & ex.Message)
                    Dim ps As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName("EXCEL")
                    For Each p As System.Diagnostics.Process In ps
                        p.Kill()
                    Next
                End Try

--  作者:baicaocao
--  发布时间:2017/6/7 11:12:00
--  
顶一下。
--  作者:baicaocao
--  发布时间:2017/6/7 11:21:00
--  
有人吗?@狐狸爸爸
--  作者:有点色
--  发布时间:2017/6/7 11:27:00
--  

试试

 

Dim App As New MSExcel.Application
Dim Wb  = App.Workbooks.Open("g:\\test.xls")
Dim Ws  = Wb.Worksheets(1)
Dim pname As String = "fax"
on error resume Next
For i As Integer = 0 To 10
    app.activeprinter = pname & " 在 Ne" & Format(i, "00") & ":"
Next
msgbox(app.activeprinter)

App.Quit()


--  作者:baicaocao
--  发布时间:2017/6/8 15:34:00
--  
经过测试,还是会出现同样的错误。。。。
--  作者:有点蓝
--  发布时间:2017/6/8 15:57:00
--  
这个错误是指打印机名称错误,到共享那里拷贝打印机的名称,直接复制有没有问题

App.ActivePrinter = "拷贝的名称"

--  作者:baicaocao
--  发布时间:2017/6/8 16:08:00
--  
我试试。。。