Tag: 打印

如何使用Excel PrintOut方法防止打印对话框

当我使用PrintOut方法将Worksheet对象打印到打印机时,即使设置了DisplayAlerts = False,也会显示“打印”对话框(显示文件名,目标打印机,打印的页面和取消button)。 下面的代码在Excelmacros中工作,但如果我在VB或VB.Net应用程序中使用此代码(使用Excel对象所需的引用更改),则会发生同样的情况。 Public Sub TestPrint() Dim vSheet As Worksheet Application.ScreenUpdating = False Application.DisplayAlerts = False Set vSheet = ActiveSheet vSheet.PrintOut Preview:=False Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub 编辑:下面的答案在这(它可能是一个Windows对话框,而不是一个Excel对话框)更多的光线,但不回答我的问题。 有谁知道如何防止显示? 编辑:谢谢你的额外的研究,凯文。 它看起来非常像这是我所需要的。 只是不知道我想盲目接受这样的API代码。 其他人是否有任何有关这些API调用的知识,他们正在做什么作者声称?

定期从Excel打印到Adobe PDF,脚本强制PDF文件保存到正确的path

我正在处理Excel中的一系列XLS文件。 当我完成这些工作之后,我需要将它们打印成PDF格式,以便将它们传输到我公司以外的一方。 我logging了一个相当基本的macros,允许我每次都用相同的设置打印这些文件。 不幸的是,这并不是我所需要做的一切。 基本上,我希望Adobe在打印文件时询问文件的保存位置。 这不是我的脚本现在正在发生。 如果我手动打印并从Excel的“打印机属性”窗口中select“询问replace现有PDF文件”的设置,它总是会询问我应该保存文件的位置。 我的脚本没有抓住这个,但是,我不知道我需要添加什么。 我有很多文件要通过(这是一个将会重演的任务),所以我越早得到这个更好的结果。 这是我可以用Excelmacros解决的问题,如果有的话,任何人都可以指向正确的方向吗? Sub PrintToAdobeRedactions() ' ' PrintToAdobeRedactions Macro ' Print redacted worksheets to Adobe with correct settings every time. ' ' Keyboard Shortcut: Ctrl+e ' Application.PrintCommunication = False With ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With Application.PrintCommunication = True ActiveSheet.PageSetup.PrintArea = "" Application.PrintCommunication = False […]

Excel VBA:打印表单代码不起作用

有人可以帮助我,我有以下代码: Sub CreateDealerCopy() Dim centreid Dim sheetno As Integer Dim modelno Dim modellist As New Collection Application.ScreenUpdating = False Sheets("-Summary").Select centreid = Range("B5").Value Sheets("-Summary").Copy Before:=Sheets(1) Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Selection.Validation.Delete ActiveSheet.Shapes.Range(Array("Rounded Rectangle 1")).Select Selection.Delete ActiveSheet.Shapes.Range(Array("Rounded Rectangle 2")).Select Selection.Delete ActiveSheet.Name = "Summary" Range("A1").Select Sheets("Model Summary").Select modellist.Add "field1" modellist.Add […]

限制打印份数

我有5台电脑和两台打印机通过局域网连接。 在其中一台计算机(不共享)中有一个特定的excel文档,我希望限制可打印的副本的数量为4个。这意味着用户不能打印超过4个该文档的副本。 我知道复印(和更多)的漏洞,但我仍然希望打印出来的复印件数量有限或有限。 我已经浏览了一些印刷控制软件的function,但是我知道他们都有一个“配额”系统,用户在超出限制后必须付印刷费。 恐怕这不会为我工作。 我也读了一个类似的问题在这里发布的答案, 设置每个工作表的副本数量 谢天谢地,这个答案帮了我很大的忙,除了我不知道如何限制或限制用户打印超出指定的数字。 我也看过很多答案,说限制拷贝数是不可能的,但是我仍然希望寻求帮助 – 也许有一些解决办法可能会出现。 我对计算机/打印机编程没有太多深入的了解。虽然不是专业人士,但我对excel vba有点熟悉。 请让我知道,如果有任何解决scheme, 只要我find一些东西,我会在这里发布。 谢谢你的帮助。

Excel VBA打印冻结

我已经尝试了大量的解决scheme,并且现在浏览了几个小时的networking。 也许你们中的一个人可以帮忙。 我有一个macrosselect所有工作表的名称中的特定string,然后打印出来。 如果表单太多,会冻结,并且无法打开macros进行debugging,而Ctrl + Alt + Del是唯一的出路。 它也冻结在不同的地方,每次… 我的原始代码: Application.ScreenUpdating = False Application.EnableEvents = False Dim x As Integer For x = 1 To Worksheets.count If VBA.InStr(Worksheets(x).Name, "Lateral Assessment") > 0 Then With Worksheets(x).PageSetup .Orientation = xlPortrait .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 End With Worksheets(x).PrintOut End If Next x Application.ScreenUpdating […]

打印excel文件c#

我已经在c#中做了一个程序为了打印一个excel文件,他打印的很好,而且所有的网格。 但我不想看到网格。 我已经这样做了: System.Windows.Forms.MessageBox.Show("Ok !", "Impression", MessageBoxButtons.OK); //PrintDocument document = new PrintDocument(); //document.DocumentName = file; //document.Print(); // On déclare l'application Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); // On ouvre un classeur XLS : Microsoft.Office.Interop.Excel.Workbook wb = app.Workbooks.Open(chemin.Text, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); // On ouvre la première […]

打印机处于活动状态时,仅使用registry设置默认打印机VBA

我使用Leith Ross的VBA代码循环浏览机器/networking上的打印机,并select与我作为默认打印机传递的参数相匹配的打印机。 见下文: Function FindPrinter(ByVal PrinterName As String) As String Dim Arr As Variant Dim Device As Variant Dim Devices As Variant Dim Printer As String Dim RegObj As Object Dim RegValue As String Const HKEY_CURRENT_USER = &H80000001 Set RegObj = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") RegObj.enumvalues HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Devices", Devices, Arr For Each Device In Devices RegObj.getstringvalue HKEY_CURRENT_USER, […]

将写入空格而不是最后一个字符(VBA Excel)

数据: 期望的输出: 电stream输出: 我目前的代码: Private Sub GenerateFlatFile_Click() Dim myFile As String, rng As Range, cellValue As Variant, I As Integer, j As Integer, SpacingCode As String Dim iPar As Integer Dim sBlank As Long Dim cont As Boolean Dim mystring As String myFile = "C:\Reformatted.txt" Set rng = Selection Open myFile For Output As #1 […]

在Excel中插入分页符以分割数据以便打印.pdf

我正在处理一个可以包含dynamic行的Excel文件。 我出口到.pdf,它运作良好。 问题是,所有的内容都在.pdf文件的单个页面上。 有没有办法在我的VBA中为我的.pdf文件插入分页符? 编辑:这是我的分页符的代码。 似乎不会工作 If count > 30 Then ' count is the number of row. Break at every 15 rows Set ws = Range("A1", "K" & count) 'The range of the document Dim ii As Integer ii = 21 ' first page break While count > 0 If count > 15 Then […]

VBA – 打开文件夹和打印名称中的文件

我想打开某个文件夹中的所有文件,并打印出这些文件的名称。 我已经设置了一个打开文件的代码,但是我不能打印它的名字。 我有一个单独的代码,将打印名称,但只会打开一个文件。 我没有把两者正确地结合在一起。 有任何想法吗? 打开所有Excel文件的代码: 'set path to progress folder Sub OpenFiles() Dim MyFolder As String Dim MyFile As String MyFolder = “C:\Users\trembos\Documents\TDS\progress" MyFile = Dir(MyFolder & "\*.xlsx") Do While MyFile <> "" Workbooks.Open fileName:=MyFolder & "\" & MyFile MyFile = Dir Loop End Sub 打印一个文件名的代码: 'set path to TDS_Working Sub TDS() Workbooks.Open ("C:\Users\trembos\Documents\TDS\progress") […]