Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
显示打印对话框从MS Access VBA打印Excel工作表_Vba_Ms Access_Ms Access 2010 - Fatal编程技术网

显示打印对话框从MS Access VBA打印Excel工作表

显示打印对话框从MS Access VBA打印Excel工作表,vba,ms-access,ms-access-2010,Vba,Ms Access,Ms Access 2010,我想打印Excel表格(单张),它存储在本地计算机的路径中,只需单击MS Access窗体上的按钮即可。出于某些业务原因,我需要提供显示打印设置对话框的灵活性,如果我们从外部打印Excel工作表,通常会显示该对话框,以便用户可以选择打印机、选择要打印的工作表的哪个部分、要打印的份数等。我目前有如下代码:- Private Sub cmdPrint_Click() 'wks is already set to Excel sheet which needs to be printed

我想打印Excel表格(单张),它存储在本地计算机的路径中,只需单击MS Access窗体上的按钮即可。出于某些业务原因,我需要提供显示打印设置对话框的灵活性,如果我们从外部打印Excel工作表,通常会显示该对话框,以便用户可以选择打印机、选择要打印的工作表的哪个部分、要打印的份数等。我目前有如下代码:-

Private Sub cmdPrint_Click()
    'wks is already set to Excel sheet which needs to be printed
    wks.PrintOut
End Sub
我还尝试使用如下所示的方法,但不确定如何将Printout方法与xlDialogPrint连接起来

 ExcelApp.Dialogs(xlDialogPrint).Show

我正在为MS Access VBA中的代码做斗争。

下面的代码将打开Excel,然后打开打印界面,允许用户选择打印任何有焦点的工作表

Sub PrintSheet()
Dim xl As Excel.Application, wb As Excel.Workbook
Set xl = CreateObject("Excel.Application")
Set wb = xl.Workbooks.Open("C:\filepath\filename.xlsx")
xl.Visible = True
xl.CommandBars.ExecuteMso ("PrintPreviewAndPrint")
End Sub

如果您想允许用户选择打印机和其他打印设置,那么如何自动打印输出?我希望用户必须从打印界面单击打印。感谢6月7日的回复。我可以使用您建议的代码获得“打印”对话框,但是执行不会停止,用户可以采取行动,并继续执行,然后移动到我编写的下一行代码,以关闭工作表并退出Excel应用程序。如何暂停,直到用户取消打印对话框或用户完成打印。也可以在不使用xl.Visible=True的情况下仅获取打印对话框。我的意思是,Excel界面是否可能继续保持隐藏状态,并且只有Excel的“打印”对话框可见。谢谢,我想我不能停下来。用户要么获得控制权,要么不获得控制权。如果应用程序不可见,您希望它的功能如何可见?您可以尝试注释
xl.Visible=True
,并在退出行上放置一个断点,看看会发生什么。别以为你会感激。