无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 1075|回复: 69
打印 上一主题 下一主题

[求助] excel打印格式设置求助

  [复制链接]
跳转到指定楼层
1#
发表于 6 天前 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 zhoubin 于 2026-2-9 15:26 编辑

每月都要打印不同的excel工作簿,工作簿格式相同,只是单元格数据不同,每次手动设置工作表格式,都是重复的劳动,怎么操作一下,工作簿自动调整行高列宽等动作,要启用宏吗,我不会,知道这里高手多,给指点一下,谢谢

感谢各位坛友们,帮忙,这里31楼的可以参考,还有这里61楼的,修改58楼cutebe,感谢各位帮忙,谢谢,在此就不一一致谢了,谢谢各位!
63#
发表于 昨天 16:33 | 只看该作者
zhoubin 发表于 2026-2-8 21:07
还有一个问题,就是再添加一些002工作表(含)以后的调整代码,002工作表(含)以后的工作表,并没有达到我 ...

函数做对应即可
  1. 表格003横向打印格式(工作表003);

  2. 表格002横向打印格式(工作表002);

  3. 表格100纵向打印格式(工作表100);

  4. 表格101纵向打印格式(工作表101);

  5. 表格102横向打印格式(工作表102);

  6. 表格104横向打印格式(工作表104);

  7. 表格105横向打印格式(工作表105);

  8. 表格106横向打印格式(工作表106);

  9. 表格107横向打印格式(工作表107);

  10. 表格108横向打印格式(工作表108);

  11. 表格109横向打印格式(工作表109);

  12. 表格900横向打印格式(工作表900);

  13. 表格103横向打印格式(工作表103);

  14. 表格001横向打印格式(工作表001);
复制代码


完整如下:
  1. //设置表格式.JS
  2. var 表格文件=WScript.Arguments(0);        //拖入表格文件.xls/.xlsx
  3. var 扩展名=表格文件.slice(表格文件.lastIndexOf('.'));
  4. if(扩展名.toLowerCase()==".xls" || 扩展名.toLowerCase()==".xlsx"){;}
  5. else{WScript.Echo("文件类型非 .xls/.xlsx\n退出!");WScript.Quit();}

  6. var 表应用 = new ActiveXObject("Excel.Application");        //创建表格程序对象
  7. var 工作簿 = 表应用.Workbooks.open(表格文件);        //打开表格文件
  8. var 工作表000 = 工作簿.Worksheets("000");
  9. var 工作表003 = 工作簿.Worksheets("003");
  10. var 工作表002 = 工作簿.Worksheets("002");
  11. var 工作表100 = 工作簿.Worksheets("100");
  12. var 工作表101 = 工作簿.Worksheets("101");
  13. var 工作表102 = 工作簿.Worksheets("102");
  14. var 工作表104 = 工作簿.Worksheets("104");
  15. var 工作表105 = 工作簿.Worksheets("105");
  16. var 工作表106 = 工作簿.Worksheets("106");
  17. var 工作表107 = 工作簿.Worksheets("107");
  18. var 工作表108 = 工作簿.Worksheets("108");
  19. var 工作表109 = 工作簿.Worksheets("109");
  20. var 工作表900 = 工作簿.Worksheets("900");
  21. var 工作表103 = 工作簿.Worksheets("103");
  22. var 工作表001 = 工作簿.Worksheets("001");

  23. 表应用.Visible = 1;        //显示表格程序

  24. 表格纵向打印格式(工作表000);
  25. //工作表000.PrintPreview;        //打印预览
  26. //工作表000.PrintOut;        //打印

  27. 工作表003.UsedRange.Replace("金额单位:?$","金额单位:万元");        //替换文本
  28. 表格003横向打印格式(工作表003);
  29. //工作表003.PrintPreview;        //打印预览

  30. 工作表002.UsedRange.Replace("金额单位:?$","金额单位:万元");        //替换文本
  31. 表格002横向打印格式(工作表002);

  32. 表格100纵向打印格式(工作表100);

  33. 工作表101.UsedRange.Replace("金额单位:?$","金额单位:万元");        //替换文本
  34. 表格101纵向打印格式(工作表101);

  35. 表格102横向打印格式(工作表102);

  36. 表格104横向打印格式(工作表104);

  37. 表格105横向打印格式(工作表105);

  38. 表格106横向打印格式(工作表106);

  39. 表格107横向打印格式(工作表107);

  40. 表格108横向打印格式(工作表108);

  41. 表格109横向打印格式(工作表109);

  42. 表格900横向打印格式(工作表900);

  43. 表格103横向打印格式(工作表103);

  44. 表格001横向打印格式(工作表001);

  45. //工作簿.Save();        //保存
  46. //工作簿.Close(0);        //关闭
  47. //表应用.Quit();        //退出表格程序
  48. WScript.Quit();        //结束


  49. /* =====函数===== */
  50. //000表
  51. function 表格000纵向打印格式(表){
  52.         var 区域=表.Range("A1:C17");
  53.         区域.Interior.ColorIndex = 0;        //无背景色-4142

  54.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  55.         表.PageSetup.Orientation = 1;        //纵向打印

  56.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(2.5);        //页边距上
  57.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(2.5);        //下
  58.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.4);        //左
  59.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(1.3);        //右
  60. }

  61. //003表
  62. function 表格003横向打印格式(表){
  63.         var 区域=表.Range("A1:BF80");
  64.         区域.Interior.ColorIndex = -4142;        //无背景色

  65.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  66.         表.PageSetup.Orientation = 2;        //横向打印

  67.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(1.9);        //上边距,页边距
  68.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(1.8);        //下边距
  69.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1);                //左边距
  70.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(0.4);        //右边距

  71.         表.Columns("C:D").ColumnWidth   = 1.88;        //C列D列宽1.88
  72.         表.Columns("E:F").ColumnWidth   = 7.5;        //E列F列宽7.5
  73.         表.Columns("G:AR").ColumnWidth  = 1.88;        //G列至AR列宽1.88
  74.         表.Columns("AS:AT").ColumnWidth = 7.5;        //AS列AT列宽7.5
  75.         表.Columns("AU:BE").ColumnWidth = 1.88;        //AU列至BE列宽1.88
  76.         表.Columns("BR").ColumnWidth        = 9.86;        //BF列宽9.86

  77.         区域=表.Range("A3: BF80");
  78.         区域.Font.Name = '宋体';        //字体
  79.         区域.Font.Size = 8;        //字号

  80.         表.Range("AE5").Borders(8).LineStyle = 1;        //上边8,AE5单元格边框
  81.         表.Range("AE5").Borders(8).Weight         = 2;
  82.         表.Range("AE5").Borders(9).LineStyle = 1;        //下边9
  83.         表.Range("AE5").Borders(9).Weight         = 2;
  84.         表.Range("AE5").Borders(7).LineStyle = 1;        //左边7
  85.         表.Range("AE5").Borders(7).Weight         = 2;
  86.         表.Range("AE5").Borders(10).LineStyle= 1;        //右边10
  87.         表.Range("AE5").Borders(10).Weight   = 2;

  88.         表.Rows("1").RowHeight  = 12.75;        //1行高12.75
  89.         表.Rows("2").RowHeight  = 18.75;        //2行高18.75
  90.         表.Rows("3").RowHeight  = 43.5;        //3行高43.5
  91.         表.Rows("4:5").RowHeight  = 14;        //4至5行高14
  92.         表.Rows(6).RowHeight          = 44;        //6行高44
  93.         表.Rows(7).RowHeight          = 69;        //7行高69
  94.         表.Rows("8:80").RowHeight = 14;        //8至80行高14

  95.         表.PageSetup.CenterFooter = "第 &P 页,共 &N 页";        //中页脚
  96.         表.PageSetup.PrintTitleRows = "$1:$3";        //顶端标题行
  97.         表.PageSetup.Zoom = false;       //打印时页面设置,必须设置为false,下面的页宽才有效
  98.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  99.         表.PageSetup.FitToPagesTall = false;
  100.         
  101.         表.Range("AE6:AH6").Borders.LineStyle = 1;              //边框
  102.         表.Range("AI5:AP6").Borders.LineStyle = 1;              //边框
  103.         表.Range("A75").VerticalAlignment = 1;                        //文字与单元格中心对齐
  104. }

  105. //002表
  106. function 表格002横向打印格式(表){
  107.         var 区域=表.Range("A1:F75");
  108.         区域.Interior.ColorIndex = -4142;        //无背景色

  109.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  110.         表.PageSetup.Orientation = 2;        //横向打印

  111.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(1.4);        //上边距,页边距
  112.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(0.8);        //下边距
  113.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(0.9);                //左边距
  114.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(0.7);        //右边距

  115.         表.Columns("F").ColumnWidth        = 82.29;        //F列宽82.29

  116.         区域=表.Range("A3: F75");
  117.         区域.Font.Name = '宋体';        //字体
  118.         区域.Font.Size = 8;        //字号

  119.         表.Rows("1").RowHeight  = 12;        //1行高12
  120.         表.Rows("2").RowHeight  = 18.75;        //2行高18.75
  121.         表.Rows("3").RowHeight  = 30.75;        //3行高30.75
  122.         表.Rows("4:75").RowHeight  = 14;        //4至75行高14
  123.         表.Rows(69).RowHeight          = 27;        //69行高44

  124.         表.PageSetup.CenterFooter = "第 &P 页,共 &N 页";        //中页脚
  125.         表.PageSetup.PrintTitleRows = "$1:$3";        //顶端标题行
  126.         表.PageSetup.Zoom = false;       //打印时页面设置,必须设置为false,下面的页宽才有效
  127.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  128.         表.PageSetup.FitToPagesTall = false;
  129. }

  130. //100表
  131. function 表格100纵向打印格式(表){
  132.         var 区域=表.Range("A1:B19");
  133.         区域.Interior.ColorIndex = 0;        //无背景色-4142

  134.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  135.         表.PageSetup.Orientation = 1;        //纵向打印

  136.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(2.1);        //页边距上
  137.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(2);        //下
  138.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.4);        //左
  139.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(1.2);        //右
  140. }

  141. //101表
  142. function 表格101横向打印格式(表){
  143.         var 区域=表.Range("A1:H79");
  144.         区域.Interior.ColorIndex = -4142;        //无背景色

  145.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  146.         表.PageSetup.Orientation = 1;        //横向打印

  147.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(1.2);        //上边距,页边距
  148.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(0.8);        //下边距
  149.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.1);                //左边距
  150.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(0.6);        //右边距

  151.         表.Columns("C:D").ColumnWidth   = 15;        //C列D列宽15
  152.         表.Columns("G:H").ColumnWidth   = 15;        //G列H列宽15
  153.         表.Columns("F").ColumnWidth        = 7;        //F列宽7

  154.         区域=表.Range("A4: H79");
  155.         区域.Font.Name = '宋体';        //字体
  156.         区域.Font.Size = 8;        //字号

  157.         表.Rows("1").RowHeight  = 12;        //1行高12
  158.         表.Rows("2").RowHeight  = 22.5;        //2行高22.5
  159.         表.Rows("3").RowHeight  = 30.75;        //3行高30.75
  160.         表.Rows("4:79").RowHeight  = 18;        //4至79行高18

  161.         表.PageSetup.PrintTitleRows = "$1:$3";        //顶端标题行
  162.         表.PageSetup.Zoom = false;       //打印时页面设置,必须设置为false,下面的页宽才有效
  163.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  164.         表.PageSetup.FitToPagesTall = false;
  165. }

  166. //102表
  167. function 表格102横向打印格式(表){
  168.         var 区域=表.Range("A1:H49");
  169.         区域.Interior.ColorIndex = -4142;        //无背景色

  170.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  171.         表.PageSetup.Orientation = 1;        //横向打印

  172.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(1);        //上边距,页边距
  173.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(0.7);        //下边距
  174.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.3);                //左边距
  175.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(1.2);        //右边距

  176.         表.Columns("C:D").ColumnWidth   = 15;        //C列D列宽15
  177.         表.Columns("G:H").ColumnWidth   = 15;        //G列H列宽15
  178.         表.Columns("F").ColumnWidth        = 7;        //F列宽7

  179.         区域=表.Range("A4: H79");
  180.         区域.Font.Name = '宋体';        //字体
  181.         区域.Font.Size = 8;        //字号

  182.         表.Rows("1:2").RowHeight  = 12.75;        //1至2行高12.75
  183.         表.Rows("3").RowHeight  = 19.5;        //3行高19.5
  184.         表.Rows("4").RowHeight  = 30;        //4行高30
  185.         表.Rows("5:47").RowHeight  = 21.75;        //5至47行高21.75

  186.         表.PageSetup.PrintTitleRows = "$1:$3";        //顶端标题行
  187.         表.PageSetup.Zoom = false;       //打印时页面设置,必须设置为false,下面的页宽才有效
  188.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  189.         表.PageSetup.FitToPagesTall = false;
  190. }

  191. //104表
  192. function 表格104横向打印格式(表){
  193.         var 区域=表.Range("A1:P28");
  194.         区域.Interior.ColorIndex = -4142;        //无背景色

  195.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  196.         表.PageSetup.Orientation = 1;        //横向打印

  197.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(2.5);        //上边距,页边距
  198.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(2.5);        //下边距
  199.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.3);                //左边距
  200.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(1);        //右边距

  201.         表.Columns("B").ColumnWidth        = 4.29;        //B列宽4.29

  202.         区域=表.Range("A4: P28");
  203.         区域.Font.Name = '宋体';        //字体
  204.         区域.Font.Size = 10;        //字号

  205.         表.Rows("1:2").RowHeight  = 12.75;        //1至2行高12.75
  206.         表.Rows("3").RowHeight  = 19.5;        //3行高19.5
  207.         表.Rows("4").RowHeight  = 30;        //4行高30
  208.         表.Rows("5:28").RowHeight  = 30;        //5至28行高30

  209.         表.PageSetup.PrintTitleRows = "$1:$6";        //顶端标题行
  210.         表.PageSetup.Zoom = false;       //打印时页面设置,必须设置为false,下面的页宽才有效
  211.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  212.         表.PageSetup.FitToPagesTall = false;
  213. }

  214. //105表
  215. function 表格105横向打印格式(表){
  216.         var 区域=表.Range("A1:J29");
  217.         区域.Interior.ColorIndex = -4142;        //无背景色

  218.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  219.         表.PageSetup.Orientation = 1;        //横向打印

  220.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(1.7);        //上边距,页边距
  221.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(1.2);        //下边距
  222.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.9);                //左边距
  223.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(1.9);        //右边距

  224.         区域=表.Range("A4: J29");
  225.         区域.Font.Name = '宋体';        //字体
  226.         区域.Font.Size = 10;        //字号

  227.         表.Rows("1:2").RowHeight  = 12.75;        //1至2行高12.75
  228.         表.Rows("3").RowHeight  = 29.25;        //3行高29.25
  229.         表.Rows("4").RowHeight  = 63.75;        //4行高63.75
  230.         表.Rows("5:29").RowHeight  = 30;        //5至29行高30

  231.         表.PageSetup.PrintTitleRows = "$1:$6";        //顶端标题行
  232.         表.PageSetup.Zoom = false;       //打印时页面设置,必须设置为false,下面的页宽才有效
  233.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  234.         表.PageSetup.FitToPagesTall = false;
  235. }

  236. //106表
  237. function 表格106横向打印格式(表){
  238.         var 区域=表.Range("A1:H34");
  239.         区域.Interior.ColorIndex = -4142;        //无背景色

  240.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  241.         表.PageSetup.Orientation = 1;        //横向打印

  242.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(1.9);        //上边距,页边距
  243.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(1.9);        //下边距
  244.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(2.8);                //左边距
  245.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(1.9);        //右边距

  246.         区域=表.Range("A4: H34");
  247.         区域.Font.Name = '宋体';        //字体
  248.         区域.Font.Size = 10;        //字号

  249.         表.Rows("1:2").RowHeight  = 12.75;        //1至2行高12.75
  250.         表.Rows("3").RowHeight  = 29.25;        //3行高29.25
  251.         表.Rows("4").RowHeight  = 63.75;        //4行高63.75
  252.         表.Rows("5:34").RowHeight  = 25.5;        //5至34行高25.5

  253.         表.PageSetup.PrintTitleRows = "$1:$5";        //顶端标题行
  254.         表.PageSetup.Zoom = false;       //打印时页面设置,必须设置为false,下面的页宽才有效
  255.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  256.         表.PageSetup.FitToPagesTall = false;
  257. }

  258. //107表
  259. function 表格107横向打印格式(表){
  260.         var 区域=表.Range("A1:D58");
  261.         区域.Interior.ColorIndex = -4142;        //无背景色

  262.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  263.         表.PageSetup.Orientation = 1;        //横向打印

  264.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(2.1);        //上边距,页边距
  265.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(2.1);        //下边距
  266.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.3);                //左边距
  267.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(0.4);        //右边距

  268.         区域=表.Range("A4: D58");
  269.         区域.Font.Name = '宋体';        //字体
  270.         区域.Font.Size = 10;        //字号

  271.         表.Rows("1:2").RowHeight  = 12.75;        //1至2行高12.75
  272.         表.Rows("3").RowHeight  = 29.25;        //3行高29.25
  273.         表.Rows("4").RowHeight  = 40.5;        //4行高40.5
  274.         表.Rows("5:58").RowHeight  = 19;        //5至58行高19

  275.         表.PageSetup.PrintTitleRows = "$1:$5";        //顶端标题行
  276.         表.PageSetup.Zoom = false;       //打印时页面设置,必须设置为false,下面的页宽才有效
  277.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  278.         表.PageSetup.FitToPagesTall = false;
  279. }

  280. //108表
  281. function 表格108横向打印格式(表){
  282.         var 区域=表.Range("A1:L30");
  283.         区域.Interior.ColorIndex = -4142;        //无背景色

  284.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  285.         表.PageSetup.Orientation = 1;        //横向打印

  286.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(2.1);        //上边距,页边距
  287.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(2.1);        //下边距
  288.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.2);                //左边距
  289.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(0.9);        //右边距

  290.         区域=表.Range("A4: L30");
  291.         区域.Font.Name = '宋体';        //字体
  292.         区域.Font.Size = 10;        //字号

  293.         表.Rows("1:2").RowHeight  = 12.75;        //1至2行高12.75
  294.         表.Rows("3").RowHeight  = 29.25;        //3行高29.25
  295.         表.Rows("4").RowHeight  = 40.5;        //4行高40.5
  296.         表.Rows("5").RowHeight  = 58.5;        //5行高58.5
  297.         表.Rows("6:30").RowHeight  = 25.5;        //6至30行高25.5

  298.         表.PageSetup.PrintTitleRows = "$1:$5";        //顶端标题行
  299.         表.PageSetup.Zoom = false;       //打印时页面设置,必须设置为false,下面的页宽才有效
  300.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  301.         表.PageSetup.FitToPagesTall = false;
  302. }

  303. //109表
  304. function 表格109横向打印格式(表){
  305.         var 区域=表.Range("A1:H27");
  306.         区域.Interior.ColorIndex = -4142;        //无背景色

  307.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  308.         表.PageSetup.Orientation = 1;        //横向打印

  309.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(2.5);        //上边距,页边距
  310.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(2.5);        //下边距
  311.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.4);                //左边距
  312.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(1.3);        //右边距

  313.         区域=表.Range("A4: H27");
  314.         区域.Font.Name = '宋体';        //字体
  315.         区域.Font.Size = 10;        //字号

  316.         表.Rows("1:2").RowHeight  = 12.75;        //1至2行高12.75
  317.         表.Rows("3").RowHeight  = 29.25;        //3行高29.25
  318.         表.Rows("4").RowHeight  = 40.5;        //4行高40.5
  319.         表.Rows("5:27").RowHeight  = 25.5;        //5至27行高25.5

  320.         表.PageSetup.PrintTitleRows = "$1:$5";        //顶端标题行
  321.         表.PageSetup.Zoom = false;       //打印时页面设置,必须设置为false,下面的页宽才有效
  322.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  323.         表.PageSetup.FitToPagesTall = false;
  324. }

  325. //900表
  326. function 表格900横向打印格式(表){
  327.         var 区域=表.Range("A1:D39");
  328.         区域.Interior.ColorIndex = -4142;        //无背景色

  329.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  330.         表.PageSetup.Orientation = 1;        //横向打印

  331.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(1.6);        //上边距,页边距
  332.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(1);        //下边距
  333.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.9);                //左边距
  334.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(1.9);        //右边距

  335.         区域=表.Range("A4: D39");
  336.         区域.Font.Name = '宋体';        //字体
  337.         区域.Font.Size = 10;        //字号

  338.         表.Rows("1:2").RowHeight  = 12.75;        //1至2行高12.75
  339.         表.Rows("3").RowHeight  = 29.25;        //3行高29.25
  340.         表.Rows("4").RowHeight  = 40.5;        //4行高40.5
  341.         表.Rows("5:27").RowHeight  = 25.5;        //5至27行高25.5

  342.         表.PageSetup.PrintTitleRows = "$1:$5";        //顶端标题行
  343.         表.PageSetup.Zoom = false;       //打印时页面设置,必须设置为false,下面的页宽才有效
  344.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  345.         表.PageSetup.FitToPagesTall = false;
  346. }

  347. //103表
  348. function 表格103横向打印格式(表){
  349.         var 区域=表.Range("A1:AD44");
  350.         区域.Interior.ColorIndex = -4142;        //无背景色

  351.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  352.         表.PageSetup.Orientation = 1;        //横向打印

  353.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(1.9);        //上边距,页边距
  354.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(1.6);        //下边距
  355.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.9);                //左边距
  356.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(1.9);        //右边距

  357.         区域=表.Range("A4: AD44");
  358.         区域.Font.Name = '宋体';        //字体
  359.         区域.Font.Size = 10;        //字号

  360.         表.Rows("1:2").RowHeight  = 12.75;        //1至2行高12.75
  361.         表.Rows("3").RowHeight  = 29.25;        //3行高29.25
  362.         表.Rows("4").RowHeight  = 40.5;        //4行高40.5
  363.         表.Rows("5:42").RowHeight  = 25.5;        //5至42行高25.5

  364.         表.PageSetup.PrintTitleRows = "$1:$9";        //顶端标题行
  365.         表.PageSetup.Zoom = false;       //打印时页面设置,必须设置为false,下面的页宽才有效
  366.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  367.         表.PageSetup.FitToPagesTall = false;
  368. }

  369. //001表
  370. function 表格001横向打印格式(表){
  371.         var 区域=表.Range("A1:AF61");
  372.         区域.Interior.ColorIndex = -4142;        //无背景色

  373.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  374.         表.PageSetup.Orientation = 1;        //横向打印

  375.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(1.9);        //上边距,页边距
  376.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(1.7);        //下边距
  377.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.9);                //左边距
  378.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(1.9);        //右边距

  379.         区域=表.Range("A4: AF61");
  380.         区域.Font.Name = '宋体';        //字体
  381.         区域.Font.Size = 10;        //字号

  382.         表.Rows("1:2").RowHeight  = 12.75;        //1至2行高12.75
  383.         表.Rows("3").RowHeight  = 29.25;        //3行高29.25
  384.         表.Rows("4").RowHeight  = 40.5;        //4行高40.5
  385.         表.Rows("5:61").RowHeight  = 25.5;        //5至61行高25.5

  386.         表.PageSetup.CenterFooter = "第 &P 页,共 &N 页";        //中页脚
  387.         表.PageSetup.PrintTitleRows = "$1:$8";        //顶端标题行
  388.         表.PageSetup.Zoom = false;       //打印时页面设置,必须设置为false,下面的页宽才有效
  389.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  390.         表.PageSetup.FitToPagesTall = false;
  391. }
复制代码
回复

使用道具 举报

62#
 楼主| 发表于 前天 21:07 | 只看该作者
还有一个问题,就是再添加一些002工作表(含)以后的调整代码,002工作表(含)以后的工作表,并没有达到我的预期效果,具体看我修改您的 设置表格格式.7z (2.11 KB, 下载次数: 6) 代码,不知哪里错了,麻烦您帮我看看,谢谢

点评

函数做对应即可 完整如下:  详情 回复 发表于 昨天 16:33
回复

使用道具 举报

61#
 楼主| 发表于 前天 20:57 | 只看该作者

把你的补充了一些代码,可以用了,谢谢您
  1. //设置表格式.JS
  2. var 表格文件=WScript.Arguments(0);        //拖入表格文件.xls/.xlsx
  3. var 扩展名=表格文件.slice(表格文件.lastIndexOf('.'));
  4. if(扩展名.toLowerCase()==".xls" || 扩展名.toLowerCase()==".xlsx"){;}
  5. else{WScript.Echo("文件类型非 .xls/.xlsx\n退出!");WScript.Quit();}

  6. var 表应用 = new ActiveXObject("Excel.Application");        //创建表格程序对象
  7. var 工作簿 = 表应用.Workbooks.open(表格文件);        //打开表格文件
  8. var 工作表000 = 工作簿.Worksheets("000");
  9. var 工作表003 = 工作簿.Worksheets("003");

  10. 表应用.Visible = 1;        //显示表格程序

  11. 表格纵向打印格式(工作表000);
  12. //工作表000.PrintPreview;        //打印预览
  13. //_Sheet000.PrintOut;        //打印

  14. 工作表003.UsedRange.Replace("金额单位:?$","金额单位:万元");        //替换文本
  15. 表格横向打印格式(工作表003);
  16. 工作表003.PrintPreview;        //打印预览

  17. //工作簿.Save();        //保存
  18. //工作簿.Close(0);        //关闭
  19. //表应用.Quit();        //退出表格程序
  20. WScript.Quit();        //结束


  21. /* =====函数===== */
  22. function 表格纵向打印格式(表){
  23.         var 区域=表.Range("A1:C17");
  24.         区域.Interior.ColorIndex = 0;        //无背景色-4142

  25.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  26.         表.PageSetup.Orientation = 1;        //纵向打印

  27.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(2.5);        //页边距上
  28.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(2.5);        //下
  29.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.4);        //左
  30.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(1.3);        //右
  31. }

  32. function 表格横向打印格式(表){
  33.         var 区域=表.Range("A1:BF80");
  34.         区域.Interior.ColorIndex = -4142;        //无背景色

  35.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  36.         表.PageSetup.Orientation = 2;        //横向打印

  37.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(1.9);        //上边距,页边距
  38.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(1.8);        //下边距
  39.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1);                //左边距
  40.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(0.4);        //右边距

  41.         表.Columns("C:D").ColumnWidth   = 1.88;        //C列D列宽1.88
  42.         表.Columns("E:F").ColumnWidth   = 7.5;        //E列F列宽7.5
  43.         表.Columns("G:AR").ColumnWidth  = 1.88;        //G列至AR列宽1.88
  44.         表.Columns("AS:AT").ColumnWidth = 7.5;        //AS列AT列宽7.5
  45.         表.Columns("AU:BE").ColumnWidth = 1.88;        //AU列至BE列宽1.88
  46.         表.Columns("BR").ColumnWidth        = 9.86;        //BF列宽9.86

  47.         区域=表.Range("A3: BF80");
  48.         区域.Font.Name = '宋体';        //字体
  49.         区域.Font.Size = 8;        //字号

  50.         表.Range("AE5").Borders(8).LineStyle = 1;        //上边8,AE5单元格边框
  51.         表.Range("AE5").Borders(8).Weight         = 2;
  52.         表.Range("AE5").Borders(9).LineStyle = 1;        //下边9
  53.         表.Range("AE5").Borders(9).Weight         = 2;
  54.         表.Range("AE5").Borders(7).LineStyle = 1;        //左边7
  55.         表.Range("AE5").Borders(7).Weight         = 2;
  56.         表.Range("AE5").Borders(10).LineStyle= 1;        //右边10
  57.         表.Range("AE5").Borders(10).Weight   = 2;

  58.         表.Rows("4:5").RowHeight  = 14;        //4至5行高14
  59.         表.Rows(6).RowHeight          = 44;        //6行高44
  60.         表.Rows(7).RowHeight          = 69;        //7行高69
  61.         表.Rows("8:80").RowHeight = 14;        //8至80行高14

  62.         表.PageSetup.CenterFooter = "第 &P 页,共 &N 页";        //中页脚
  63.         表.PageSetup.PrintTitleRows = "$1:$3";        //顶端标题行
  64.         表.PageSetup.Zoom = false;       //打印时页面设置,必须设置为false,下面的页宽才有效
  65.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  66.         表.PageSetup.FitToPagesTall = false;
  67.         
  68.         表.Range("AE6:AH6").Borders.LineStyle = 1;              //边框
  69.         表.Range("AI5:AP6").Borders.LineStyle = 1;              //边框
  70.         表.Range("A75").VerticalAlignment = 1;                        //文字与单元格中心对齐
  71. }
复制代码


回复

使用道具 举报

60#
 楼主| 发表于 4 天前 | 只看该作者

这个基本可以,只是:第2个工作表:将所有列调整为一页,没起作用;谢谢您
回复

使用道具 举报

59#
发表于 4 天前 | 只看该作者
还没搞定?
楼主没有测试#31楼的vba代码吗?
层主修改过的版本,看了没什么问题,
应该可以解决问题了。
如果要求003以后的工作表也一样设置,就加一段从003开始循环设置后面的工作表代码
就可以完成十几张表的一键设置了。
回复

使用道具 举报

58#
发表于 4 天前 | 只看该作者
  1. //设置表格式.JS
  2. var 表格文件=WScript.Arguments(0);        //拖入表格文件.xls/.xlsx
  3. var 扩展名=表格文件.slice(表格文件.lastIndexOf('.'));
  4. if(扩展名.toLowerCase()==".xls" || 扩展名.toLowerCase()==".xlsx"){;}
  5. else{WScript.Echo("文件类型非 .xls/.xlsx\n退出!");WScript.Quit();}

  6. var 表应用 = new ActiveXObject("Excel.Application");        //创建表格程序对象
  7. var 工作簿 = 表应用.Workbooks.open(表格文件);        //打开表格文件
  8. var 工作表000 = 工作簿.Worksheets("000");
  9. var 工作表003 = 工作簿.Worksheets("003");

  10. 表应用.Visible = 1;        //显示表格程序

  11. 表格纵向打印格式(工作表000);
  12. //工作表000.PrintPreview;        //打印预览
  13. //_Sheet000.PrintOut;        //打印

  14. 工作表003.UsedRange.Replace("金额单位:?$","金额单位:万元");        //替换文本
  15. 表格横向打印格式(工作表003);
  16. 工作表003.PrintPreview;        //打印预览

  17. //工作簿.Save();        //保存
  18. //工作簿.Close(0);        //关闭
  19. //表应用.Quit();        //退出表格程序
  20. WScript.Quit();        //结束


  21. /* =====函数===== */
  22. function 表格纵向打印格式(表){
  23.         var 区域=表.Range("A1:B17");
  24.         区域.Interior.ColorIndex = 0;        //无背景色-4142

  25.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  26.         表.PageSetup.Orientation = 1;        //纵向打印

  27.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(2.5);        //页边距上
  28.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(2.5);        //下
  29.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.4);        //左
  30.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(1.3);        //右
  31. }

  32. function 表格横向打印格式(表){
  33.         var 区域=表.Range("A1:BF80");
  34.         区域.Interior.ColorIndex = -4142;        //无背景色

  35.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  36.         表.PageSetup.Orientation = 2;        //横向打印

  37.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(1.9);        //上边距,页边距
  38.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(1.8);        //下边距
  39.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1);                //左边距
  40.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(0.4);        //右边距

  41.         表.Columns("C:D").ColumnWidth   = 1.88;        //C列D列宽1.88
  42.         表.Columns("E:F").ColumnWidth   = 7.5;        //E列F列宽7.5
  43.         表.Columns("G:AR").ColumnWidth  = 1.88;        //G列至AR列宽1.88
  44.         表.Columns("AS:AT").ColumnWidth = 7.5;        //AS列AT列宽7.5
  45.         表.Columns("AU:BE").ColumnWidth = 1.88;        //AU列至BE列宽1.88
  46.         表.Columns("BR").ColumnWidth        = 9.86;        //BF列宽9.86

  47.         区域=表.Range("A3: BF80");
  48.         区域.Font.Name = '宋体';        //字体
  49.         区域.Font.Size = 8;        //字号

  50.         表.Range("AE5").Borders(8).LineStyle = 1;        //上边8,AE5单元格边框
  51.         表.Range("AE5").Borders(8).Weight         = 2;
  52.         表.Range("AE5").Borders(9).LineStyle = 1;        //下边9
  53.         表.Range("AE5").Borders(9).Weight         = 2;
  54.         表.Range("AE5").Borders(7).LineStyle = 1;        //左边7
  55.         表.Range("AE5").Borders(7).Weight         = 2;
  56.         表.Range("AE5").Borders(10).LineStyle= 1;        //右边10
  57.         表.Range("AE5").Borders(10).Weight   = 2;

  58.         表.Rows("4:5").RowHeight  = 14;        //4至5行高14
  59.         表.Rows(6).RowHeight          = 44;        //6行高44
  60.         表.Rows(7).RowHeight          = 69;        //7行高69
  61.         表.Rows("8:80").RowHeight = 14;        //8至80行高14

  62.         表.PageSetup.CenterFooter = "第 &P 页,共 &N 页";        //中页脚
  63.         表.PageSetup.PrintTitleRows = "$1:$3";        //顶端标题行
  64.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  65.         表.PageSetup.FitToPagesTall = false;
  66. }
复制代码

点评

把你的补充了一些代码,可以用了,谢谢您  详情 回复 发表于 前天 20:57
这个基本可以,只是:第2个工作表:将所有列调整为一页,没起作用;谢谢您  详情 回复 发表于 4 天前

评分

参与人数 1无忧币 +5 收起 理由
zhoubin + 5 乐于助人,谢谢帮忙

查看全部评分

回复

使用道具 举报

57#
 楼主| 发表于 4 天前 | 只看该作者
还是不行呢
回复

使用道具 举报

56#
发表于 4 天前 | 只看该作者
看来还是不支持中文
  1. //设置表格式.JS
  2. var _xlsFile=WScript.Arguments(0);        //拖入表格文件.xls/.xlsx

  3. var XlsApp = new ActiveXObject("Excel.Application");        //创建表格程序对象
  4. var _Books = XlsApp.Workbooks.open(_xlsFile);        //打开表格文件
  5. var _Sheet000 = _Books.Worksheets("000");
  6. var _Sheet003 = _Books.Worksheets("003");

  7. XlsApp.Visible = 1;        //显示表格程序

  8. _Sheet_PrtFromat1(_Sheet000);
  9. //_Sheet000.PrintPreview;        //打印预览
  10. //_Sheet000.PrintOut;        //打印

  11. _Sheet003.UsedRange.Replace("金额单位:?$","金额单位:万元");        //替换文本
  12. _Sheet_PrtFromat2(_Sheet003);
  13. //_Sheet003.PrintPreview;        //打印预览

  14. //_Books.Save();        //保存
  15. //_Books.Close(0);        //关闭
  16. //XlsApp.Quit();        //退出表格程序
  17. WScript.Quit();        //结束


  18. /* =====函数===== */
  19. function _Sheet_PrtFromat1(_Sht){
  20.         var _fRange=_Sht.Range("A1:B17");
  21.         _fRange.Interior.ColorIndex = 0;        //无背景色-4142

  22.         _Sht.PageSetup.PrintArea   = _fRange.Address;        //打印区域
  23.         _Sht.PageSetup.Orientation = 1;        //纵向打印

  24.         _Sht.PageSetup.TopMargin        = XlsApp.CentimetersToPoints(2.5);        //页边距上
  25.         _Sht.PageSetup.BottomMargin = XlsApp.CentimetersToPoints(2.5);        //下
  26.         _Sht.PageSetup.LeftMargin   = XlsApp.CentimetersToPoints(1.4);        //左
  27.         _Sht.PageSetup.RightMargin  = XlsApp.CentimetersToPoints(1.3);        //右
  28. }

  29. function _Sheet_PrtFromat2(_Sht){
  30.         var _fRange=_Sht.Range("A1:BF80");
  31.         _fRange.Interior.ColorIndex = -4142;        //无背景色

  32.         _Sht.PageSetup.PrintArea   = _fRange.Address;        //打印区域
  33.         _Sht.PageSetup.Orientation = 2;        //横向打印

  34.         _Sht.PageSetup.TopMargin        = XlsApp.CentimetersToPoints(1.9);        //上边距,页边距
  35.         _Sht.PageSetup.BottomMargin = XlsApp.CentimetersToPoints(1.8);        //下边距
  36.         _Sht.PageSetup.LeftMargin   = XlsApp.CentimetersToPoints(1);        //左边距
  37.         _Sht.PageSetup.RightMargin  = XlsApp.CentimetersToPoints(0.4);        //右边距

  38.         _Sht.Columns("C:D").ColumnWidth   = 1.88;        //C列D列宽1.88
  39.         _Sht.Columns("E:F").ColumnWidth   = 7.5;        //E列F列宽7.5
  40.         _Sht.Columns("G:AR").ColumnWidth  = 1.88;        //G列至AR列宽1.88
  41.         _Sht.Columns("AS:AT").ColumnWidth = 7.5;        //AS列AT列宽7.5
  42.         _Sht.Columns("AU:BE").ColumnWidth = 1.88;        //AU列至BE列宽1.88
  43.         _Sht.Columns("BR").ColumnWidth          = 9.86;        //BF列宽9.86

  44.         _fRange=_Sht.Range("A3: BF80");
  45.         _fRange.Font.Name = '宋体';        //字体
  46.         _fRange.Font.Size = 8;        //字号

  47.         _Sht.Range("AE5").Borders(8).LineStyle = 1;        //上边8,AE5单元格边框
  48.         _Sht.Range("AE5").Borders(8).Weight           = 2;
  49.         _Sht.Range("AE5").Borders(9).LineStyle = 1;        //下边9
  50.         _Sht.Range("AE5").Borders(9).Weight           = 2;
  51.         _Sht.Range("AE5").Borders(7).LineStyle = 1;        //左边7
  52.         _Sht.Range("AE5").Borders(7).Weight           = 2;
  53.         _Sht.Range("AE5").Borders(10).LineStyle= 1;        //右边10
  54.         _Sht.Range("AE5").Borders(10).Weight   = 2;

  55.         _Sht.Rows("4:5").RowHeight        = 14;        //4至5行高14
  56.         _Sht.Rows(6).RowHeight                = 44;        //6行高44
  57.         _Sht.Rows(7).RowHeight            = 69;        //7行高69
  58.         _Sht.Rows("8:80").RowHeight = 14;        //8至80行高14

  59.         _Sht.PageSetup.CenterFooter = "第 &P 页,共 &N 页";        //中页脚
  60.         _Sht.PageSetup.PrintTitleRows = "$1:$3";        //顶端标题行
  61.         _Sht.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  62.         _Sht.PageSetup.FitToPagesTall = false;
  63. }
复制代码
回复

使用道具 举报

55#
 楼主| 发表于 4 天前 | 只看该作者
cutebe 发表于 2026-2-6 08:32
//表.PageSetup.Zoom = true;
        表.PageSetup.FitToPagesWide = 1;        //缩放:将所有 ...

抽空试了一下,还是报错
回复

使用道具 举报

54#
发表于 4 天前 | 只看该作者
本帖最后由 cutebe 于 2026-2-6 09:40 编辑
77行加“//”注释掉看下

       //表.PageSetup.Zoom = true;
        表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
        表.PageSetup.FitToPagesTall = false;
}

点评

[attachimg]571725[/attachimg]抽空试了一下,还是报错  详情 回复 发表于 4 天前
回复

使用道具 举报

53#
 楼主| 发表于 5 天前 | 只看该作者

出错了,谢谢
回复

使用道具 举报

52#
发表于 5 天前 | 只看该作者
再看看
  1. //设置表格格式.JS
  2. var 表格文件=WScript.Arguments(0);        //拖入表格文件.xls/.xlsx

  3. var 表应用 = new ActiveXObject("Excel.Application");        //创建表格程序对象
  4. var 工作簿 = 表应用.Workbooks.open(表格文件);        //打开表格文件
  5. var 工作表000 = 工作簿.Worksheets("000");
  6. var 工作表003 = 工作簿.Worksheets("003");

  7. 表应用.Visible = 1;        //显示表格程序

  8. 表格纵向打印格式(工作表000);
  9. //工作表000.PrintPreview;        //打印预览

  10. 工作表003.UsedRange.Replace("金额单位:?$","金额单位:万元");        //替换文本
  11. 表格横向打印格式(工作表003);
  12. //工作表003.PrintPreview;        //打印预览

  13. //工作簿.Save();        //保存
  14. //工作簿.Close(0);        //关闭
  15. //表应用.Quit();        //退出表格程序
  16. WScript.Quit();        //结束


  17. /* =====函数===== */
  18. function 表格纵向打印格式(表){
  19.         var 区域=表.Range("A1:B17");
  20.         区域.Interior.ColorIndex = 0;        //无背景色-4142

  21.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  22.         表.PageSetup.Orientation = 1;        //纵向打印

  23.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(2.5);        //页边距上
  24.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(2.5);        //下
  25.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.4);        //左
  26.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(1.3);        //右
  27. }

  28. function 表格横向打印格式(表){
  29.         var 区域=表.Range("A1:BF80");
  30.         区域.Interior.ColorIndex = -4142;        //无背景色

  31.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  32.         表.PageSetup.Orientation = 2;        //横向打印

  33.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(1.9);        //上边距,页边距
  34.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(1.8);        //下边距
  35.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1);                //左边距
  36.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(0.4);        //右边距

  37.         表.Columns("C:D").ColumnWidth   = 1.88;        //C列D列宽1.88
  38.         表.Columns("E:F").ColumnWidth   = 7.5;        //E列F列宽7.5
  39.         表.Columns("G:AR").ColumnWidth  = 1.88;        //G列至AR列宽1.88
  40.         表.Columns("AS:AT").ColumnWidth = 7.5;        //AS列AT列宽7.5
  41.         表.Columns("AU:BE").ColumnWidth = 1.88;        //AU列至BE列宽1.88
  42.         表.Columns("BR").ColumnWidth        = 9.86;        //BF列宽9.86

  43.         区域=表.Range("A3: BF80");
  44.         区域.Font.Name = '宋体';        //字体
  45.         区域.Font.Size = 8;        //字号

  46.         表.Range("AE5").Borders(8).LineStyle = 1;        //上边8,AE5单元格边框
  47.         表.Range("AE5").Borders(8).Weight    = 2;
  48.         表.Range("AE5").Borders(9).LineStyle = 1;        //下边9
  49.         表.Range("AE5").Borders(9).Weight    = 2;
  50.         表.Range("AE5").Borders(7).LineStyle = 1;        //左边7
  51.         表.Range("AE5").Borders(7).Weight    = 2;
  52.         表.Range("AE5").Borders(10).LineStyle= 1;        //右边10
  53.         表.Range("AE5").Borders(10).Weight   = 2;

  54.         表.Rows("4:5").RowHeight  = 14;        //4至6行高14
  55.         表.Rows(6).RowHeight          = 44;        //6行高44
  56.         表.Rows(7).RowHeight          = 69;        //7行高69
  57.         表.Rows("8:80").RowHeight = 14;        //8至80行高14

  58.         表.PageSetup.CenterFooter = "第 &P 页,共 &N 页";        //中页脚
  59.         表.PageSetup.PrintTitleRows = "$1:$3";        //顶端标题行
  60.         表.PageSetup.Zoom = true;
  61.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  62.         //表.PageSetup.FitToPagesTall = false;
  63. }
复制代码

点评

[attachimg]571719[/attachimg]出错了,谢谢  详情 回复 发表于 5 天前
回复

使用道具 举报

51#
 楼主| 发表于 5 天前 | 只看该作者

又报错了
回复

使用道具 举报

50#
发表于 5 天前 | 只看该作者
本帖最后由 cutebe 于 2026-2-5 17:39 编辑
  1. //设置表格格式.JS
  2. var 表格文件=WScript.Arguments(0);        //拖入表格文件.xls/.xlsx

  3. var 表应用 = new ActiveXObject("Excel.Application");        //创建表格程序对象
  4. var 工作簿 = 表应用.Workbooks.open(表格文件);        //打开表格文件
  5. var 工作表000 = 工作簿.Worksheets("000");
  6. var 工作表003 = 工作簿.Worksheets("003");

  7. 表应用.Visible = 1;        //显示表格程序

  8. 表格纵向打印格式(工作表000);
  9. //工作表000.PrintPreview;        //打印预览

  10. 工作表003.UsedRange.Replace("金额单位:?$","金额单位:万元");        //替换文本
  11. 表格横向打印格式(工作表003);
  12. //工作表003.PrintPreview;        //打印预览

  13. //工作簿.Save();        //保存
  14. //工作簿.Close(0);        //关闭
  15. //表应用.Quit();        //退出表格程序
  16. WScript.Quit();        //结束


  17. /* =====函数===== */
  18. function 表格纵向打印格式(表){
  19.         var 区域=表.Range("A1:B17");
  20.         区域.Interior.ColorIndex = 0;        //无背景色-4142

  21.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  22.         表.PageSetup.Orientation = 1;        //纵向打印

  23.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(2.5);        //页边距上
  24.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(2.5);        //下
  25.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.4);        //左
  26.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(1.3);        //右
  27. }

  28. function 表格横向打印格式(表){
  29.         var 区域=表.Range("A1:BF80");
  30.         区域.Interior.ColorIndex = -4142;        //无背景色

  31.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  32.         表.PageSetup.Orientation = 2;        //横向打印

  33.         表.PageSetup.TopMargin          = 表应用.CentimetersToPoints(1.9);        //上边距,页边距
  34.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(1.8);        //下边距
  35.         表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1);                //左边距
  36.         表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(0.4);        //右边距

  37.         表.Columns("C:D").ColumnWidth   = 1.88;        //C列D列宽1.88
  38.         表.Columns("E:F").ColumnWidth   = 7.5;        //E列F列宽7.5
  39.         表.Columns("G:AR").ColumnWidth  = 1.88;        //G列至AR列宽1.88
  40.         表.Columns("AS:AT").ColumnWidth = 7.5;        //AS列AT列宽7.5
  41.         表.Columns("AU:BE").ColumnWidth = 1.88;        //AU列至BE列宽1.88
  42.         表.Columns("BR").ColumnWidth        = 9.86;        //BF列宽9.86

  43.         区域=表.Range("A3: BF80");
  44.         区域.Font.Name = '宋体';        //字体
  45.         区域.Font.Size = 8;        //字号

  46.         表.Range("AE5").Borders(8).LineStyle = 1;        //上边8,AE5单元格边框
  47.         表.Range("AE5").Borders(8).Weight         = 2;
  48.         表.Range("AE5").Borders(9).LineStyle = 1;        //下边9
  49.         表.Range("AE5").Borders(9).Weight         = 2;
  50.         表.Range("AE5").Borders(7).LineStyle = 1;        //左边7
  51.         表.Range("AE5").Borders(7).Weight         = 2;
  52.         表.Range("AE5").Borders(10).LineStyle= 1;        //右边10
  53.         表.Range("AE5").Borders(10).Weight   = 2;

  54.         表.Rows("4:5").RowHeight  = 14;        //4至6行高14
  55.         表.Rows(6).RowHeight          = 44;        //6行高44
  56.         表.Rows(7).RowHeight          = 69;        //7行高69
  57.         表.Rows("8:80").RowHeight = 14;        //8至80行高14

  58.         表.PageSetup.CenterFooter = "第 &P 页,共 &N 页";        //中页脚

  59.         表.PageSetup.PrintTitleRows = "$1:$3";        //顶端标题行
  60.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一页
  61.         表.PageSetup.FitToPagesTall = 0;
  62. }
复制代码

点评

[attachimg]571713[/attachimg]又报错了  详情 回复 发表于 5 天前
回复

使用道具 举报

49#
发表于 5 天前 | 只看该作者
财务还是让公司买一套软件吧,财务软件有基础的报表打印功能的.开源节流事半功倍。
回复

使用道具 举报

48#
 楼主| 发表于 5 天前 | 只看该作者
cutebe 发表于 2026-2-5 11:30
另存为时,编码选ANSI
再截图看下(报错的第15行)你复制的代码,要去掉行号

这下不报错了,你这个直接开始打印了,不要直接打印,只调格式就好;还有以下问题,麻烦您看一下第2个工作表:将所有列调整为一页;AE5单元格:所有框线;6行行高:44;插入页脚:第1页,共2页;
谢谢老师

回复

使用道具 举报

47#
发表于 5 天前 来自手机 | 只看该作者
啊?
回复

使用道具 举报

46#
发表于 5 天前 | 只看该作者
zhoubin 发表于 2026-2-5 09:20
又调整了,刚看到

15张表格都做好了。
回复

使用道具 举报

45#
 楼主| 发表于 5 天前 | 只看该作者
狼人72105 发表于 2026-2-5 11:22
这一下,粘贴试试

报告大佬,你的代码,一直运行,停不下来,也关不掉
回复

使用道具 举报

44#
发表于 5 天前 | 只看该作者
本帖最后由 cutebe 于 2026-2-5 11:53 编辑

另存为时,编码选ANSI
再截图看下(报错的第15行)你复制的代码,要去掉行号

点评

这下不报错了,你这个直接开始打印了,不要直接打印,只调格式就好;还有以下问题,麻烦您看一下第2个工作表:将所有列调整为一页;AE5单元格:所有框线;6行行高:44;插入页脚:第1页,共2页; 谢谢老师  详情 回复 发表于 5 天前
回复

使用道具 举报

43#
发表于 5 天前 来自手机 | 只看该作者
这一下,粘贴试试

点评

报告大佬,你的代码,一直运行,停不下来,也关不掉  详情 回复 发表于 5 天前
回复

使用道具 举报

42#
发表于 5 天前 来自手机 | 只看该作者
Option Explicit

Sub MonthPrint_Optimized()
    ' MonthPrint 优化版宏
    ' 打印月年报 - 修复和优化版本
   
    On Error GoTo ErrorHandler
   
    ' 定义工作表数组
    Dim sheetNames As Variant
    sheetNames = Array("000", "003", "002", "100", "101", "102", "104", "105", _
                       "106", "107", "108", "109", "900", "103", "001")
   
    Dim startTime As Double
    startTime = Timer
   
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.DisplayAlerts = False
   
    Dim ws As Worksheet
    Dim sheetName As Variant
   
    ' 批量处理所有工作表
    For Each sheetName In sheetNames
        On Error Resume Next
        Set ws = ThisWorkbook.Sheets(CStr(sheetName))
        On Error GoTo ErrorHandler
        
        If Not ws Is Nothing Then
            ' 应用基础打印设置
            ApplyBasePrintSettings ws
            
            ' 根据工作表名称应用特定设置
            Select Case CStr(sheetName)
                Case "000"
                    ApplySheet000Settings ws
                Case "003"
                    ApplySheet003Settings ws
                Case "002"
                    ApplySheet002Settings ws
                Case "100", "101", "102", "104", "105", "106", "107"
                    ApplyGeneralSheetSettings ws
                Case "108", "109", "900", "103", "001"
                    ApplyGeneralSheetSettings ws
                    ' 可以为每个表添加特定设置
                    If CStr(sheetName) = "001" Then
                        ApplySheet001Settings ws
                    End If
            End Select
            
            Set ws = Nothing
        End If
    Next sheetName
   
CleanUp:
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.DisplayAlerts = True
   
    Dim elapsedTime As Double
    elapsedTime = Timer - startTime
    MsgBox "打印设置完成!耗时: " & Format(elapsedTime, "0.00") & "秒", vbInformation
   
    Exit Sub

ErrorHandler:
    MsgBox "错误发生: " & Err.Description & vbCrLf & _
           "错误号: " & Err.Number & vbCrLf & _
           "工作表: " & IIf(ws Is Nothing, "N/A", ws.Name), vbCritical
    Resume CleanUp
End Sub

' 基础打印设置子程序
Private Sub ApplyBasePrintSettings(ws As Worksheet)
    Application.PrintCommunication = False
   
    With ws.PageSetup
        ' 页边距设置
        .LeftMargin = Application.InchesToPoints(0.75)
        .RightMargin = Application.InchesToPoints(0.75)
        .TopMargin = Application.InchesToPoints(1)
        .BottomMargin = Application.InchesToPoints(1)
        .HeaderMargin = Application.InchesToPoints(0.5)
        .FooterMargin = Application.InchesToPoints(0.5)
        
        ' 基本打印选项
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = False
        .CenterVertically = False
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = False
        
        ' 清空页眉页脚
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        
        ' 偶数页页眉页脚
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        
        ' 首页页眉页脚
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
   
    Application.PrintCommunication = True
End Sub

' 工作表000的特定设置
Private Sub ApplySheet000Settings(ws As Worksheet)
    With ws.PageSetup
        .Orientation = xlPortrait
        .FitToPagesWide = 1
        .FitToPagesTall = 0
    End With
End Sub

' 工作表003的特定设置
Private Sub ApplySheet003Settings(ws As Worksheet)
    Application.PrintCommunication = False
   
    With ws.PageSetup
        ' 设置为横向
        .Orientation = xlLandscape
        .FitToPagesWide = 1
        .FitToPagesTall = False
        
        ' 打印区域
        .PrintArea = "$A$1:$BF$80"
        .PrintTitleRows = "$1:$8"
        
        ' 自定义边距
        .LeftMargin = Application.InchesToPoints(0.748)
        .RightMargin = Application.InchesToPoints(0.748)
        .TopMargin = Application.InchesToPoints(0.669)
        .BottomMargin = Application.InchesToPoints(0.591)
    End With
   
    Application.PrintCommunication = True
   
    ' 设置列宽和行高
    With ws
        ' 设置列宽
        .Columns("C:BF").ColumnWidth = 1.88
        .Columns("E:E").ColumnWidth = 7.5
        .Columns("F:F").ColumnWidth = 7.5
        .Columns("AS:AS").ColumnWidth = 7.5
        .Columns("AT:AT").ColumnWidth = 7.5
        .Columns("BF:BF").ColumnWidth = 11.29
        
        ' 设置行高
        .Rows("1:1").RowHeight = 10.5
        .Rows("2:2").RowHeight = 27
        .Rows("3:3").RowHeight = 44.25
        .Rows("7:7").RowHeight = 81
        .Rows("8:80").RowHeight = 18
        
        ' 设置字体
        .Range("C10:BF80").Font.Name = "宋体"
        .Range("C10:BF80").Font.Size = 9
        .Range("A4:BF80").Font.Size = 10
        
        ' 替换文本
        .Range("AT3").Replace What:="金额单位:?$", Replacement:="金额单位:万元", LookAt:=xlPart
        .Range("BF3").Value = "表号:003" & Chr(10) & "金额单位:万元"
    End With
End Sub

' 工作表002的特定设置
Private Sub ApplySheet002Settings(ws As Worksheet)
    Application.PrintCommunication = False
   
    With ws.PageSetup
        .Orientation = xlLandscape
        .FitToPagesWide = 1
        .FitToPagesTall = False
        .PrintTitleRows = "$1:$4"
        
        ' 自定义边距
        .LeftMargin = Application.InchesToPoints(0.748)
        .RightMargin = Application.InchesToPoints(0.748)
        .TopMargin = Application.InchesToPoints(0.709)
        .BottomMargin = Application.InchesToPoints(0.63)
    End With
   
    Application.PrintCommunication = True
   
    With ws
        ' 设置行高
        .Rows("1:1").RowHeight = 17.25
        .Rows("2:2").RowHeight = 20.25
        .Rows("3:3").RowHeight = 26.25
        .Rows("4:75").RowHeight = 14
        
        ' 设置列宽
        .Columns("F:F").ColumnWidth = 47.57
        
        ' 设置字体
        .Range("F31,F69,F70").Font.Name = "宋体"
        .Range("F31,F69,F70").Font.Size = 6
    End With
End Sub

' 工作表001的特定设置
Private Sub ApplySheet001Settings(ws As Worksheet)
    Application.PrintCommunication = False
   
    With ws.PageSetup
        .Orientation = xlLandscape
        .FitToPagesWide = 1
        .FitToPagesTall = False
        .PrintTitleRows = "$1:$8"
        
        ' 自定义边距
        .LeftMargin = Application.InchesToPoints(0.748)
        .RightMargin = Application.InchesToPoints(0.748)
        .TopMargin = Application.InchesToPoints(0.984)
        .BottomMargin = Application.InchesToPoints(0.827)
    End With
   
    Application.PrintCommunication = True
   
    With ws
        ' 设置列宽
        .Columns("C:AF").ColumnWidth = 9
    End With
End Sub

' 通用工作表设置
Private Sub ApplyGeneralSheetSettings(ws As Worksheet)
    ' 默认设置为横向
    With ws.PageSetup
        .Orientation = xlLandscape
        .FitToPagesWide = 1
        .FitToPagesTall = False
    End With
   
    ' 替换所有工作表中的"金额单位:?$"
    On Error Resume Next
    ws.Cells.Replace What:="金额单位:?$", Replacement:="金额单位:万元", LookAt:=xlPart
    On Error GoTo 0
End Sub

' 快捷打印宏
Sub QuickPrintAll()
    ' 直接打印所有配置好的工作表
    On Error GoTo PrintError
   
    Application.ScreenUpdating = False
   
    Dim sheetNames As Variant
    sheetNames = Array("000", "003", "002", "100", "101", "102", "104", "105", _
                       "106", "107", "108", "109", "900", "103", "001")
   
    Dim wsNames() As String
    ReDim wsNames(0 To UBound(sheetNames))
   
    Dim i As Long
    For i = 0 To UBound(sheetNames)
        wsNames(i) = CStr(sheetNames(i))
    Next i
   
    ' 选择并打印所有工作表
    ThisWorkbook.Sheets(wsNames).Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
   
CleanUp:
    Application.ScreenUpdating = True
    Exit Sub
   
PrintError:
    MsgBox "打印错误: " & Err.Description, vbExclamation
    Resume CleanUp
End Sub

' 恢复默认设置(可选)
Sub ResetPrintSettings()
    Dim ws As Worksheet
    Dim response As VbMsgBoxResult
   
    response = MsgBox("确定要重置所有工作表的打印设置吗?", vbYesNo + vbQuestion, "确认重置")
   
    If response = vbYes Then
        Application.ScreenUpdating = False
        
        For Each ws In ThisWorkbook.Worksheets
            With ws.PageSetup
                ' 恢复默认设置
                .LeftHeader = ""
                .CenterHeader = ""
                .RightHeader = ""
                .LeftFooter = ""
                .CenterFooter = ""
                .RightFooter = ""
                .LeftMargin = Application.InchesToPoints(0.75)
                .RightMargin = Application.InchesToPoints(0.75)
                .TopMargin = Application.InchesToPoints(1)
                .BottomMargin = Application.InchesToPoints(1)
                .HeaderMargin = Application.InchesToPoints(0.5)
                .FooterMargin = Application.InchesToPoints(0.5)
                .PrintHeadings = False
                .PrintGridlines = False
                .CenterHorizontally = False
                .CenterVertically = False
                .Orientation = xlPortrait
                .PaperSize = xlPaperA4
                .FirstPageNumber = xlAutomatic
                .Zoom = 100
                .PrintArea = ""
                .PrintTitleRows = ""
                .PrintTitleColumns = ""
            End With
        Next ws
        
        Application.ScreenUpdating = True
        MsgBox "打印设置已重置为默认值!", vbInformation
    End If
End Sub
回复

使用道具 举报

41#
发表于 5 天前 来自手机 | 只看该作者
zhoubin 发表于 2026-2-5 08:55
没法运行

笨蛋,你直接复制的,没有分行,怎么运行?
回复

使用道具 举报

40#
 楼主| 发表于 5 天前 | 只看该作者
cutebe 发表于 2026-2-5 10:08
金山WPS正常,可能是MS的不支持中文

仍然报错

点评

另存为时,编码选ANSI 再截图看下你复制的代码,要去掉行号  详情 回复 发表于 5 天前
回复

使用道具 举报

39#
发表于 5 天前 | 只看该作者

金山WPS正常,可能是MS的不支持中文
  1. //设置表格格式并打印.JS
  2. var _xlsFile=WScript.Arguments(0);        //拖入表格文件.xls/.xlsx

  3. var XlsApp = new ActiveXObject("Excel.Application");        //创建表格程序对象
  4. var _Books = XlsApp.Workbooks.open(_xlsFile);        //打开表格文件
  5. var _Sheet000 = _Books.Worksheets("000");
  6. var _Sheet003 = _Books.Worksheets("003");

  7. XlsApp.Visible = 1;        //显示表格程序

  8. _Sheet_PrtFromat1(_Sheet000);
  9. //_Sheet000.PrintPreview;        //打印预览
  10. _Sheet000.PrintOut;        //打印

  11. _Sheet003.UsedRange.Replace("金额单位:?$","金额单位:万元");        //替换文本
  12. _Sheet_PrtFromat2(_Sheet003);
  13. //_Sheet003.PrintPreview;        //打印预览
  14. //_Sheet003.PrintOut;        //打印

  15. //_Books.Save();        //保存
  16. //_Books.Close(0);        //关闭
  17. //XlsApp.Quit();        //退出表格程序
  18. WScript.Quit();        //结束


  19. /* =====函数===== */
  20. function _Sheet_PrtFromat1(_Sht){
  21.         var _fRange=_Sht.Range("A1:B17");
  22.         _fRange.Interior.ColorIndex = 0;        //无背景色-4142

  23.         _Sht.PageSetup.PrintArea   = _fRange.Address;        //打印区域
  24.         _Sht.PageSetup.Orientation = 1;        //纵向打印

  25.         _Sht.PageSetup.TopMargin        = XlsApp.CentimetersToPoints(2.5);        //页边距上
  26.         _Sht.PageSetup.BottomMargin = XlsApp.CentimetersToPoints(2.5);        //下
  27.         _Sht.PageSetup.LeftMargin   = XlsApp.CentimetersToPoints(1.4);        //左
  28.         _Sht.PageSetup.RightMargin  = XlsApp.CentimetersToPoints(1.3);        //右
  29. }

  30. function _Sheet_PrtFromat2(_Sht){
  31.         var _fRange=_Sht.Range("A1:BF80");
  32.         _fRange.Interior.ColorIndex = -4142;        //无背景色

  33.         _Sht.PageSetup.PrintArea   = _fRange.Address;        //打印区域
  34.         _Sht.PageSetup.Orientation = 2;        //横向打印

  35.         _Sht.PageSetup.TopMargin        = XlsApp.CentimetersToPoints(1.9);        //上边距,页边距
  36.         _Sht.PageSetup.BottomMargin = XlsApp.CentimetersToPoints(1.8);        //下边距
  37.         _Sht.PageSetup.LeftMargin   = XlsApp.CentimetersToPoints(1);                //左边距
  38.         _Sht.PageSetup.RightMargin  = XlsApp.CentimetersToPoints(0.4);        //右边距

  39.         _Sht.Columns("C:D").ColumnWidth   = 1.88;        //C列D列宽1.88
  40.         _Sht.Columns("E:F").ColumnWidth   = 7.5;        //E列F列宽7.5
  41.         _Sht.Columns("G:AR").ColumnWidth  = 1.88;        //G列至AR列宽1.88
  42.         _Sht.Columns("AS:AT").ColumnWidth = 7.5;        //AS列AT列宽7.5
  43.         _Sht.Columns("AU:BE").ColumnWidth = 1.88;        //AU列至BE列宽1.88
  44.         _Sht.Columns("BR").ColumnWidth        = 9.86;        //BF列宽9.86

  45.         _fRange=_Sht.Range("A3: BF80");
  46.         _fRange.Font.Name = '宋体';        //字体
  47.         _fRange.Font.Size = 8;        //字号

  48.         _Sht.Rows("4:6").RowHeight  = 14;        //4至6行高14
  49.         _Sht.Rows(7).RowHeight          = 69;        //7行高69
  50.         _Sht.Rows("8:80").RowHeight = 14;        //8至80行高14

  51.         _Sht.PageSetup.PrintTitleRows = "$1:$3";        //顶端标题行
  52.         _Sht.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一列
  53.         _Sht.PageSetup.FitToPagesTall = false;
  54.         //_Sht.PageSetup.PaperSize = 8;        //纸张大小A4:9,A3:8
  55. }
复制代码

点评

[attachimg]571698[/attachimg]仍然报错  详情 回复 发表于 5 天前
回复

使用道具 举报

38#
 楼主| 发表于 5 天前 | 只看该作者
cutebe 发表于 2026-2-5 09:33
把决算.xls拖入JS文件图标上

报错了

点评

金山WPS正常,可能是MS的不支持中文  详情 回复 发表于 5 天前
回复

使用道具 举报

37#
发表于 5 天前 | 只看该作者
zhoubin 发表于 2026-2-4 21:52
有一excel工作簿:决算.xls,工作簿里有15个工作表,
000工作表:打印区域选定为:A1:B17,无填充颜色; ...

把决算.xls拖入JS文件图标上
  1. //设置表格格式并打印.JS
  2. var 表格文件=WScript.Arguments(0);        //拖入表格文件.xls/.xlsx

  3. var 表应用 = new ActiveXObject("Excel.Application");        //创建表格程序对象
  4. var 工作簿 = 表应用.Workbooks.open(表格文件);        //打开表格文件
  5. var 工作表000 = 工作簿.Worksheets("000");
  6. var 工作表003 = 工作簿.Worksheets("003");

  7. 表应用.Visible = 1;        //显示表格程序

  8. 表格纵向打印格式(工作表000);
  9. //工作表000.PrintPreview;        //打印预览
  10. 工作表000.PrintOut;        //打印

  11. 工作表003.UsedRange.Replace("金额单位:?$","金额单位:万元");        //替换文本
  12. 表格横向打印格式(工作表003);
  13. //工作表003.PrintPreview;        //打印预览
  14. //工作表003.PrintOut;        //打印

  15. //工作簿.Save();        //保存
  16. //工作簿.Close(0);        //关闭
  17. //表应用.Quit();        //退出表格程序
  18. WScript.Quit();        //结束


  19. /* =====函数===== */
  20. function 表格纵向打印格式(表){
  21.         var 区域=表.Range("A1:B17");
  22.         区域.Interior.ColorIndex = 0;        //无背景色-4142

  23.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  24.         表.PageSetup.Orientation = 1;        //纵向打印

  25.         表.PageSetup.TopMargin    = 表应用.CentimetersToPoints(2.5);        //页边距上
  26.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(2.5);        //下
  27.     表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1.4);        //左
  28.     表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(1.3);        //右
  29. }

  30. function 表格横向打印格式(表){
  31.         var 区域=表.Range("A1:BF80");
  32.         区域.Interior.ColorIndex = -4142;        //无背景色

  33.         表.PageSetup.PrintArea   = 区域.Address;        //打印区域
  34.         表.PageSetup.Orientation = 2;        //横向打印

  35.         表.PageSetup.TopMargin    = 表应用.CentimetersToPoints(1.9);        //上边距,页边距
  36.         表.PageSetup.BottomMargin = 表应用.CentimetersToPoints(1.8);        //下边距
  37.     表.PageSetup.LeftMargin   = 表应用.CentimetersToPoints(1);                //左边距
  38.     表.PageSetup.RightMargin  = 表应用.CentimetersToPoints(0.4);        //右边距

  39.         表.Columns("C:D").ColumnWidth   = 1.88;        //C列D列宽1.88
  40.         表.Columns("E:F").ColumnWidth   = 7.5;        //E列F列宽7.5
  41.         表.Columns("G:AR").ColumnWidth  = 1.88;        //G列至AR列宽1.88
  42.         表.Columns("AS:AT").ColumnWidth = 7.5;        //AS列AT列宽7.5
  43.         表.Columns("AU:BE").ColumnWidth = 1.88;        //AU列至BE列宽1.88
  44.         表.Columns("BR").ColumnWidth    = 9.86;        //BF列宽9.86

  45.         区域=表.Range("A3: BF80");
  46.         区域.Font.Name = '宋体';        //字体
  47.         区域.Font.Size = 8;        //字号

  48.         表.Rows("4:6").RowHeight  = 14;        //4至6行高14
  49.         表.Rows(7).RowHeight      = 69;        //7行高69
  50.         表.Rows("8:80").RowHeight = 14;        //8至80行高14

  51.         表.PageSetup.PrintTitleRows = "$1:$3";        //顶端标题行
  52.         表.PageSetup.FitToPagesWide = 1;        //缩放:将所有列打印在一列
  53.         表.PageSetup.FitToPagesTall = false;       
  54.         //表.PageSetup.PaperSize = 8;        //纸张大小A4:9,A3:8
  55. }
复制代码

点评

[attachimg]571697[/attachimg]报错了  详情 回复 发表于 5 天前
回复

使用道具 举报

36#
 楼主| 发表于 5 天前 | 只看该作者

又调整了,刚看到

点评

15张表格都做好了。  详情 回复 发表于 5 天前
回复

使用道具 举报

35#
 楼主| 发表于 5 天前 | 只看该作者

这个有点问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2026-2-10 02:59

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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