rally 发表于 2018-8-23 09:45:15

Excel 打印区域和纸张自定义设置

哪位大神帮忙指点一下,Excel 设置打印区域和纸质大小设置,谢谢!

kk_lee69 发表于 2018-8-23 10:08:18

請 善用搜索

http://www.autoit3.cn/search.php?mod=forum&searchid=33&orderby=lastpost&ascdesc=desc&searchsubmit=yes&kw=EXCEL+%B4%F2%D3%A1

rally 发表于 2018-8-23 22:41:23

收到,谢谢大大

rally 发表于 2018-8-23 22:52:39

大大,请教一下,如何自定义设置纸张,例如想设置一个尺寸为140mm*297mm的纸张

rally 发表于 2018-8-23 22:54:15

在论坛范例中,只看到如下设置
With $oExcel.ActiveSheet.PageSetup
      .Orientation = 1                     ;设置打印方向
      .PaperSize = 8                     ;设置打印纸张
EndWith
;;;;PS:
      #cs
                xlPaperLetter         1Letter (8-1/2 in. x 11 in.)
                xlPaperA3             8A3 (297 mm x 420 mm)
                xlPaperA4             9A4 (210 mm x 297 mm)
                xlPaperA4Small       10A4 Small (210 mm x 297 mm)
                xlPaperA5            11A5 (148 mm x 210 mm)
                xlPaperB4            12B4 (250 mm x 354 mm)
                xlPaperB5            13B5 (182 mm x 257 mm)
                xlPaperFanfoldUS   39U.S. Standard Fanfold (14-7/8 in. x 11 in.)

                xlLandscape         2横向
                xlPortrait            1纵向
      #ce

kk_lee69 发表于 2018-8-24 01:57:35

rally 发表于 2018-8-23 22:54
在论坛范例中,只看到如下设置
With $oExcel.ActiveSheet.PageSetup
      .Orientation = 1         ...
你 錄製 巨集了嗎 (宏)

你可以 錄製巨集 然後在 EXCE 設定好紙張然後 你就會知道VBA 怎麼設定

rally 发表于 2018-9-21 09:33:56

谢谢大大,我试试看

duxing 发表于 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
                        .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
我在用的,参考下
页: [1]
查看完整版本: Excel 打印区域和纸张自定义设置