ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2639|回复: 28

[已解决] word录制宏-插入页码-运行时错误5941,求大佬解决

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-5-31 17:57 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 eh864166675 于 2023-6-1 11:42 编辑

录制代码如下:


Sub 插入页码()
'
' 插入页码 宏
'
'

    If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
        ActiveWindow.Panes(2).Close
    End If
    If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
        ActivePane.View.Type = wdOutlineView Then
        ActiveWindow.ActivePane.View.Type = wdPrintView
    End If
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
    With Selection.HeaderFooter.PageNumbers
        .NumberStyle = wdPageNumberStyleNumberInDash
        .HeadingLevelForChapter = 0
        .IncludeChapterNumber = False
        .ChapterPageSeparator = wdSeparatorHyphen
        .RestartNumberingAtSection = False
        .StartingNumber = 0
    End With
    Application.Templates( _
        "C:\Users\admin\AppData\Roaming\Microsoft\Document Building Blocks\2052\16\Built-In Building Blocks.dotx" _
        ).BuildingBlockEntries("普通数字").Insert Where:=Selection.Range, RichText:= _
        True
    Selection.Font.Size = 14
    Selection.Font.Name = "Times New Roman"
    Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
    Application.Templates( _
        "C:\Users\admin\AppData\Roaming\Microsoft\Document Building Blocks\2052\16\Built-In Building Blocks.dotx" _
        ).BuildingBlockEntries("普通数字").Insert Where:=Selection.Range, RichText:= _
        True
    Selection.Font.Size = 14
    Selection.Font.Name = "Times New Roman"
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub


运行时提示错误5941,调试定位错误为


    Application.Templates( _
        "C:\Users\admin\AppData\Roaming\Microsoft\Document Building Blocks\2052\16\Built-In Building Blocks.dotx" _
        ).BuildingBlockEntries("普通数字").Insert Where:=Selection.Range, RichText:= _
        True

没学过wordvba,网上很少这个错误的资料,自动尝试抄作业未果,故来提问

TA的精华主题

TA的得分主题

发表于 2023-5-31 23:21 | 显示全部楼层
没有看懂这句的意思,不是加页码吗,直接用 .PageNumbers.Add 就可以了呀

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-1 08:48 | 显示全部楼层
batmanbbs 发表于 2023-5-31 23:21
没有看懂这句的意思,不是加页码吗,直接用 .PageNumbers.Add 就可以了呀

需求是:
1.页码格式"-1-";
2.奇偶页不同;
3.奇数页,页码居右,空一格;
4.偶数页,页数居左,空一格;
5.页码字号4,字体 Time New Roman
可能是录制宏的缘故,我的代码有一些可以简化(比方说进入编辑页脚视图,退出页脚视图)

TA的精华主题

TA的得分主题

发表于 2023-6-1 09:05 | 显示全部楼层
本帖最后由 batmanbbs 于 2023-6-1 09:26 编辑

是公文吗?如果你知道Quicker,可以用我的一个动作"公文排版"。
PS:如果是公文,你的要求至少有2处不符合党政公文国标要求,一个是一字线,一个是字体。

TA的精华主题

TA的得分主题

发表于 2023-6-1 09:16 | 显示全部楼层
本帖最后由 batmanbbs 于 2023-6-1 09:19 编辑

至少还需要要
一是奇偶页
image.png
二是用域添加页码(替换你那句)
image.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-1 09:36 | 显示全部楼层
batmanbbs 发表于 2023-6-1 09:16
至少还需要要
一是奇偶页

wordvba大白一名,代码全靠录制出来的,大佬说的两点,我都不知道怎么改进去(刚刚自己瞎改了一下,错误运行不了)

TA的精华主题

TA的得分主题

发表于 2023-6-1 09:57 | 显示全部楼层
本帖最后由 batmanbbs 于 2023-6-1 11:17 编辑

你可以借这个机会正好认真学习一下啊^_^

给你简单弄了一下,没有考虑多节的问题,如果有多节,自己加个循环

image.png

评分

3

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-1 11:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
batmanbbs 发表于 2023-6-1 09:57
你可以借这个机会正好认真学习一下啊^_^

给你简单弄了一下,没有考虑多节的问题,如果有多节,自己加个 ...

最佳答案,感谢大佬

TA的精华主题

TA的得分主题

发表于 2023-6-2 03:38 | 显示全部楼层
* 楼主,我有现成的《插入页码公文一字线》宏你可以试用一下,还请 batmanbbs 老师斧正!
* 请将代码粘贴到空白文档后,全选,剪切,再粘贴到 VBE 中,否则可能有乱码。
  1. Sub PageNumGW()
  2.     With ActiveDocument.Sections(1)
  3.         With .Footers(wdHeaderFooterPrimary)
  4.             .Range.Delete
  5.             If .Parent.Parent.ComputeStatistics(wdStatisticPages) > 2 Then
  6.                 With .PageNumbers
  7.                     .NumberStyle = wdPageNumberStyleArabic
  8.                     .Add PageNumberAlignment:=wdAlignPageNumberCenter, FirstPage:=True
  9.                 End With
  10.                 With .Range
  11.                     .InsertBefore Text:=ChrW(8212) & " "
  12.                     .Characters.Last.Previous.InsertAfter Text:=" " & ChrW(8212)
  13.                     With .Font
  14.                         .Name = "宋体"
  15.                         .Size = 14
  16.                     End With
  17.                 End With
  18.             End If
  19.         End With
  20.         .Headers(wdHeaderFooterPrimary).Range.ParagraphFormat.Borders(wdBorderBottom).LineStyle = wdLineStyleNone
  21.     End With
  22. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2023-6-2 10:11 | 显示全部楼层
本帖最后由 batmanbbs 于 2023-6-2 10:32 编辑
413191246se 发表于 2023-6-2 03:38
* 楼主,我有现成的《插入页码公文一字线》宏你可以试用一下,还请 batmanbbs 老师斧正!
* 请将代码粘贴 ...

晕,您是我的老师呀,刚刚入门一直都在看你的代码学习呢,还发给我学习资料,再次表示感谢!

斧正我可不敢:)针对楼主的需求,我觉得老师您的这段代码好像不太适合:
一是楼主需要的奇偶页设置,老师您的代码好像是只能添加奇数页的页码;
二是楼主需要奇数页页码右对齐,偶数页页码左对齐,老师的代码是页码居中;
三是楼主需要排版时,在页码和边距间左右空一个空格。您使用的图文框的方式,不太容易定位。

PS:如果老师又什么好的定位图文框的方法也请共享出来,我好认真学习。比如:图文框居页面左侧(或者右侧)空一个汉字的距离。

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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-4 15:51 , Processed in 0.043721 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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