qzgx.net
当前位置:首页 >> ExCElvBA打印控制数量 >>

ExCElvBA打印控制数量

Sheet1.PrintOut Copies:=range("a1"), Collate:=True, IgnorePrintAreas:=False '这句就是按照A1单元格里的数字打印多少份.

在你的工作表上点鼠标右键、查看代码,粘贴一下内容:Option ExplicitSub xxx() Dim i, n n = Val(InputBox("打印多少次?")) For i = 1 To n [a1] = [a1] + 1 ActiveSheet.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False Next iEnd Sub然后你按ALT+F8选择xxx可以了.

Sub myPrintTest()Const strCol = "E" '此处设置打印的列数Dim i, j As Stringi = InputBox("请输入起始打印行")j = InputBox("请输入终止打印行")ActiveSheet.PageSetup.PrintArea = "$A$" + i + ":$" + strCol + "$" + jExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"End Sub当然你说的那种用userform的方法也可以. 不过这种也还不错啦.

你是要在打印拷贝上A1单元格标上打印的第几份数?如下:Sub 宏1() yy = InputBox("打印份数", , 1) For i = 1 To yy ActiveWindow.SelectedSheets.PrintOut Copies:=1 Cells(1, 1) = "第" & Application.Text(mid(Cells(1,1),2,4) + 1, "0000") & "联" Next End Sub

没研究过这么高级的,你可以计算一下打印的纸张在EXCEL中列宽多少能满足然后通过调整列宽去实现节省纸张

sub test()dim sh as worksheetdim i, x, y as integery = 0for each sh in thisworkbook.sheetsif left(sh.name, 2) = "10" theny = y + (sh.hpagebreaks.count + 1) * (sh.vpagebreaks.count + 1)end ifnext shx = 1for each sh in thisworkbook.sheetsif left(sh.

如果你的页面设置都一样,最简单的办法,你先选中你要改的所有的表,设一次就得了,非用VBA可以这样做:1、把你改一个表的流程用录制宏的办法录下来,作为修改的核心,2、编辑宏 在录下来的流程外面加上一层循环 改所有的表2.1取得你的工作薄中sheet的数量 for i=1 to Worksheets.Count 以此建立循环2.2 选取一个工作表 Worksheets(i).Select2.3 这里是你录的哪个宏内容……2.3 next i搞定

VBA设置excel自动打印:sub dayin() Application.ActiveSheet.PrintOut copies:=1 end sub 这是打印当前的工作表 打印一份 如果是打印当前工作薄中的工作表 Excel.ActiveWorkBook.PrintOut(1,Excel.WorkSheets.count,1,.T.) 带参数的打印 参数说

能设置多少个打印区域好象帮助里没有说,总之一个打印区域至少要分配一页纸张来打印,理论上可以设置很多很多的打印区域.

好像没办法的吧,因为你调用了两次debug.print啊只能这样:debug.print "ab"或是用参数处理:i1:="a"i2:="b"debug.print i1 & i2

qhnw.net | fkjj.net | hyfm.net | ldyk.net | ddng.net | 网站首页 | 网站地图
All rights reserved Powered by www.qzgx.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com