找回密码
 加入
搜索
查看: 1859|回复: 7

[系统综合] Excel 打印区域和纸张自定义设置

  [复制链接]
发表于 2018-8-23 09:45:15 | 显示全部楼层 |阅读模式
哪位大神帮忙指点一下,Excel 设置打印区域和纸质大小设置,谢谢!
发表于 2018-8-23 10:08:18 | 显示全部楼层
 楼主| 发表于 2018-8-23 22:41:23 | 显示全部楼层
收到,谢谢大大
 楼主| 发表于 2018-8-23 22:52:39 | 显示全部楼层
大大,请教一下,如何自定义设置纸张,例如想设置一个尺寸为140mm*297mm的纸张
 楼主| 发表于 2018-8-23 22:54:15 | 显示全部楼层
在论坛范例中,只看到如下设置
With $oExcel.ActiveSheet.PageSetup
        .Orientation = 1                     ;设置打印方向
        .PaperSize = 8                       ;设置打印纸张
EndWith
;;;;PS:
        #cs
                xlPaperLetter         1  Letter (8-1/2 in. x 11 in.)
                xlPaperA3             8  A3 (297 mm x 420 mm)
                xlPaperA4             9  A4 (210 mm x 297 mm)
                xlPaperA4Small       10  A4 Small (210 mm x 297 mm)
                xlPaperA5            11  A5 (148 mm x 210 mm)
                xlPaperB4            12  B4 (250 mm x 354 mm)
                xlPaperB5            13  B5 (182 mm x 257 mm)
                xlPaperFanfoldUS     39  U.S. Standard Fanfold (14-7/8 in. x 11 in.)

                xlLandscape           2  横向
                xlPortrait            1  纵向
        #ce
发表于 2018-8-24 01:57:35 | 显示全部楼层
rally 发表于 2018-8-23 22:54
在论坛范例中,只看到如下设置
With $oExcel.ActiveSheet.PageSetup
        .Orientation = 1           ...

你 錄製 巨集了嗎 (宏)

你可以 錄製巨集 然後在 EXCE 設定好紙張  然後 你就會知道VBA 怎麼設定
 楼主| 发表于 2018-9-21 09:33:56 | 显示全部楼层
谢谢大大,我试试看
发表于 2018-9-21 11:07:32 | 显示全部楼层
Func put($gl, $lie, $kuan, $len1, $len2) ;数组,列宽,表宽"m" & $sj,筛选1,自动换行2

        ClipPut('') ;;;;清空剪贴板:预备动作
        _ArrayToClip2D($gl, 1, 1) ;;;把数组写入剪贴板(开始行0,开始列1):仅支持二维数组。原数组仅支持一维数组
        $text = ClipGet() ;;;;获取剪贴板文本数据
        ;$xls.Sheets("Sheet1").Name= $name
        $xls.activesheet.range("A1").Select ;;;选择A1单元格:下句将从A1单元格开始复制
        $xls.activesheet.range("A1").PasteSpecial ;;;复制剪贴板文本数据
        If $len1 = 1 Then Send("^+{l}")

        ;($lie)
        With $xls.activesheet
                For $i = 1 To $lie[0]
                        .Columns($i).ColumnWidth = $lie[$i]
                Next
                ;.Columns(5).ColumnWidth =0
                ;.Columns(12).ColumnWidth =0
                .Columns(1).NumberFormatLocal = "0"
                .Columns(8).NumberFormatLocal = "0"
                .Columns(7).font.size = 9 ;设置字体大小
                .Columns(7).font.name = "楷体" ;设置字体名称
                .Columns(14).font.size = 9 ;设置字体大小
                .Columns(14).font.name = "楷体" ;设置字体名称
                ;                .rows($sj).font.size = 9;最后行
                .Columns(6).font.size = 9 ;设置字体大小
                .Columns(6).font.size = 9 ;设置字体大小
                .Columns(13).font.size = 9 ;设置字体大小
                .Columns(13).font.size = 9 ;设置字体大小

        EndWith
        #cs
                With $xls.ActiveSheet.PageSetup ;设置打印页面设置的属性
                ;    .cells(1,5).NumberFormatLocal ="0"
                .LeftMargin = $xls.InchesToPoints(0.3) ;以磅为单位返回或设置左边距的大小置左边距
                .RightMargin = $xls.InchesToPoints(0) ;以磅为单位返回或设置右边距的大小置左边距
                .TopMargin = $xls.InchesToPoints(0) ;以磅为单位返回或设置上边距的大小置左边距
                .BottomMargin = $xls.InchesToPoints(0) ;以磅为单位返回或设置下边距的大小置左边距
                .HeaderMargin = $xls.InchesToPoints(0) ;以磅为单位返回或设置页面顶端到页眉的距离
                .FooterMargin = $xls.InchesToPoints(0) ;以磅为单位返回或设置页面底端到页脚的距离
                .PrintHeadings = False ;如果打印本页时同时打印行标题和列标题,则该值为 True。仅应用于工作表。
                ;.PrintGridlines = False     ;如果在页面上打印单元格网格线,则该值为 True。仅应用于工作表。
                ;        .PrintQuality = 300         ;返回或设置打印质量。
                .CenterHorizontally = True ;如果在页面的水平居中位置打印指定工作表,则该属性值为 True。
                .CenterVertically = True ;如果在页面的垂直居中位置打印指定工作表,则该属性值为 True。
                ;.Draft = False              ;如果打印工作表时不打印其中的图形,则该属性值为 True。
                .BlackAndWhite = True ;如果指定文档中的元素以黑白方式打印,则该属性值为 True。
                EndWith
        #ce
        Local $az = "A1:" & $kuan
        ;$xls.range("a3:a4").mergecells=true
        ;$xls.range($az).mergecells=true
        ;$xls.range("a2:ai2").mergecells=true合并单元格
        With $xls.ActiveSheet.Range($az)
                .Borders($xlEdgeTop).LineStyle = $xlContinuous ;上边线
                .Borders($xlEdgeTop).ColorIndex = 0 ;上边线颜色
                .Borders($xlEdgeBottom).LineStyle = $xlContinuous ;下边线
                .Borders($xlEdgeBottom).ColorIndex = 0 ;下边线颜色
                .Borders($xlEdgeLeft).LineStyle = $xlContinuous ;左边线
                .Borders($xlEdgeLeft).ColorIndex = 0 ;左边线颜色
                .Borders($xlEdgeRight).LineStyle = $xlContinuous ;右边线
                .Borders($xlEdgeRight).ColorIndex = 0 ;右边线颜色
                .Borders($xlInsideHorizontal).LineStyle = $xlContinuous ;内横线
                .Borders($xlInsideHorizontal).ColorIndex = 0 ;内横线颜色
                .Borders($xlInsideVertical).LineStyle = $xlContinuous ;内竖线
                .Borders($xlInsideVertical).ColorIndex = 0 ;内竖线颜色
                If $len2 = 2 Then .Range($az).WrapText = True
        EndWith
EndFunc   ;==>put
我在用的,参考下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-3-29 18:38 , Processed in 0.071251 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表