我正在尝试在Excel中指定一个单元格,供用户输入要打印输出的打印机名称,然后在
中使用该值Application.ActivePrinter = (use the cell value)
即使我已经完成了为单元格指定名称并在变量中使用它的编程,但它给了我一个错误。
我已将变量设置为字符串,文本,对象和变体,但它无效。
您知道我应该使用哪些代码来执行此操作吗?
答案 0 :(得分:3)
如果没有所有细节我会猜测用户没有输入打印机所需的所有信息。在我们的网络上,我们的打印机已设置好,因此您需要打印服务器,打印机名称和网络名称才能获得正确的打印效果。在即时窗口中,尝试以下代码行,以了解如何在电子表格中输入打印机。
debug.Print application.ActivePrinter
您可能希望通过提供服务器和网络信息来帮助用户(如果所有打印机都是相同的话)。在我的办公室,你会使用这样的东西:
Application.ActivePrinter = "\\printserver\" & _
range("printername").value & " on Ne05:"
答案 1 :(得分:1)
打印机名称非常特别 - 如果没有像Windows预期的那样输入,则会出现错误。 (由于您没有在问题中记录特定的错误消息,我假设这是问题所在;这是最可能的问题。)
我在这种情况下所做的是为用户提供可用打印机列表。您可以使用此代码填充列表(称为lstPrinters):
Private Sub LoadPrintersListBox()
Dim prtLoop As Printer
Dim strListRowSource As String
For Each prtLoop In Application.Printers
strListRowSource = strListRowSource + prtLoop.DeviceName + ";"
Next prtLoop
lstPrinters.RowSource = strListRowSource
End Sub
然后,您可以使用用户的选择来设置打印机。 (此代码假定有一个名为cmdSetPrinter的按钮,用户将在选择打印机后单击该按钮。)
Private Sub cmdSetPrinter_Click()
Application.ActivePrinter = lstPrinters.Column(0)
End Sub
您可以确信列表中的打印机是根据系统需要命名的,您无需担心打字错误。
答案 2 :(得分:1)
如果您遇到有问题的打印机没有安装在他们的计算机上的问题,这段代码可以为您解决问题:
Set WshNetwork = CreateObject("WScript.Network")
PrinterPath = "\\SERVER\PRINTER
WshNetwork.AddWindowsPrinterConnection PrinterPath