Foxtable(狐表)用户栏目专家坐堂 → 直接打印Excel表时,如何指定“页面设置”上的打印质量


  共有3917人关注过本帖树形打印复制链接

主题:直接打印Excel表时,如何指定“页面设置”上的打印质量

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/8 15:03:00 [显示全部帖子]

设置属性 PrintQuality

 

你可以通过【录制宏】,得到对应的代码,改写到foxtable即可

 

http://www.foxtable.com/webhelp/scr/2121.htm

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/12 12:23:00 [显示全部帖子]

1、默认打印机,设置成 doPDF v7

 

2、删掉代码 App.ActivePrinter ="doPDF v7"

 

3、请在excel里面录制宏,获取得到代码


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 12:03:00 [显示全部帖子]

设置默认打印机,参考

 

Dim obj As object = CreateObject("WScript.Network")
obj.SetDefaultPrinter("打印机名")


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 14:50:00 [显示全部帖子]

以下是引用xvkewen在2018/10/24 14:03:00的发言:
不是设置默认打印机,而是怎么在文件管理器中指定使用非默认打印机打印?

 

必须设置默认打印机,没有其它方法。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 15:59:00 [显示全部帖子]

换一种思路,把excel文件保存为图片,然后打印图片

 

Dim App As New MSExcel.Application
try
    Dim Wb As MSExcel.WorkBook = app.WorkBooks.open("C:\Users\dv rrxaI600 007\Downloads\excel打印显示不全.xlsx")
    Dim Ws = wb.WorkSheets(1)
    Dim rg As MSExcel.Range = ws.UsedRange
   
    rg.copy
    'app.visible = True
    ClipBoard.GetImage.save("d:\aaa.wmf")
    app.quit
catch ex As exception
    msgbox(ex.message)
    app.quit
End try


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 17:08:00 [显示全部帖子]

那试试这样写

 

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("d:\test.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
app.PrintCommunication = False
Ws.PageSetup.PrintQuality = 96   '如果打印机不支持96 Dpi时,此行会报错;
Ws.PrintOut(Preview:=False,ActivePrinter: ="doPDF v7") '直接打印;
app.PrintCommunication = True


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 17:58:00 [显示全部帖子]

试试这样

 

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("d:\test.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
'app.PrintCommunication = False
on error resume Next
Dim pname As String = "doPDF v7"
For i As Integer = 0 To 10
    app.activeprinter = pname & " 在 Ne" & Format(i, "00") & ":"
Next
msgbox(app.activeprinter)
Ws.PageSetup.PrintQuality = 96   '如果打印机不支持96 Dpi时,此行会报错;
'app.PrintCommunication = True
Ws.PrintOut


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 23:14:00 [显示全部帖子]

去看看你的打印机,你确定有这个名称的打印机【doPDF v7】?

 

如果确实有,试试代码改成

 

For i As Integer = 0 To 20
    app.activeprinter = pname & " 在 Ne" & Format(i, "00") & ":"
Next

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 23:15:00 [显示全部帖子]

或者是,你把默认打印机改成【doPDF v7】,然后执行代码msgbox(app.activeprinter)

 

看弹出什么。


 回到顶部