|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
- 如果你默认打印机为激光,当打印某表时需用针式打印机
- 可设置以下代码点击按扭时改为针式,打好后又恢复激光
- Sub 在代码中直接写入打印机名()
- Set net = CreateObject("WScript.Network")
- net.SetDefaultPrinter "Jolimark FP-570K"
- ActiveSheet.PrintPreview '打印预览
- net.SetDefaultPrinter "HP LaserJet Professional P 1102w"
- End Sub
- Sub 在工作表中引用打印机名()
- Set net = CreateObject("WScript.Network")
- net.SetDefaultPrinter Range("L1")
- ActiveSheet.PrintPreview '打印预览
- net.SetDefaultPrinter Range("L2")
- End Sub
复制代码
补充内容 (2020-1-9 22:27):
还可以用列表框选择打印机
Private Sub ListBox1_Click()
Dim i&, s$, ws As Object
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
s = ListBox1.List(ListBox1.ListIndex, 0)
End If
Next
Set ws = CreateObject("wscript.network")
ws.SetDefaultPrinter s
End Sub
'===============窗体初始化生成打印机列表
Private Sub UserForm_Initialize()
Dim i&, ws As Object, ptn$, arr() As String, n&, m&
Set ws = CreateObject("wscript.network")
n = ws.EnumPrinterConnections.Count
ReDim arr(1 To n / 2)
For i = 1 To n - 1 Step 2
ptn = ws.EnumPrinterConnections.Item(i) '打印机名称
m = (i - 1) / 2 + 1
arr(m) = ptn
Next
Me.ListBox1.List = Application.Transpose(arr)
End Sub
'====================打印
Private Sub CommandButton1_Click()
Dim i&, a&, b&, s$
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
' s = ListBox1.List(ListBox1.ListIndex, 0)
a = 1
b = Range("d7")
For i = a To b
Range("A1:D10").PrintOut
Range("h2") = Range("h1") + i
Next
Else
MsgBox "请先选择打印机型号"
End If
Next
End Sub |
评分
-
9
查看全部评分
-
|