ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何在Excel中用VBA引用Word liberary Object

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-7-6 11:26 | 显示全部楼层 |阅读模式
通常情况下,在Excel中引用Word 14 object Libary 就可以对Word进行相关操作了。但从高版本的excel到低版本时容易丢失Word 14 Liberary  object(如excel2010到excel2007时)。是否可以不用引用Word 14 object Libary,而直接通过VBA来引用word liberary object 从而易于对word进行操作。例如设定word文档的页眉页脚。如设定页眉为("No.文件名 Date:日期(格式为mmm. dd, yyyy) Page *(第几页) of page **(总页数)"). 谢谢!

最终效果的PDF文件就是要用excel表JA111112通过Word形成的格式和样式。
excel表JA111111引用了office 2010 中的Word 14 liberty Object,但在Office2007中容易丢失。需解决。

而excel表JA111112不引用Word 14 liberary Object,但无法形成页眉页脚的修改。而且会直接复制在第二页中,不能复制在第一页中。因为第一页是一节,第二页又是一节。套用的是JA100004的格式。是否可以不用引用Word 14 object Libary,而直接通过VBA来引用word liberary object 从而易于对word进行操作。具体内容可参看附件。提供附件以便修改。
谢谢答复。琢磨近一年多无果。 请高手帮助解决。谢谢!
金澳公司申请单制作问题.rar (181.45 KB, 下载次数: 88)

[ 本帖最后由 njwyt 于 2011-7-6 13:21 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-7-6 19:51 | 显示全部楼层
问题1:关于"无法形成页眉页脚的修改"
答: 应将wdApp.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader更改为 wdApp.ActiveWindow.ActivePane.View.SeekView = 9 ,另注意:修改完页眉之后还应用wdApp.ActiveWindow.ActivePane.View.SeekView = 0退出页眉.
建议:不建议使用wdApp.ActiveWindow.ActivePane.View.SeekView 对页眉进行修改,,而应考虑使用Headers

问题2:关于"直接复制在第二页中,不能复制在第一页中"
答:你的模板文件"JA100004.doc"中为什么不删除哪些空段呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-7 09:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

谢谢你解决了我的困惑

谢谢你。按照你的思路,我将所有相关的文字描述全部按照对应的数字进行了替换,结果就可以运行了。而且也可以将内容直接先复制到了第一页。但就是步骤有些烦琐。以下的两个问题,请有这方面经验的人是否可以帮忙看看。在此先行谢谢了。
    1.关于对页眉的设置你建议使用Headers,不知具体程序如何?如方便,请明示。
    2.不知是否有在excel中用VBA来直接引用Microsoft Word  14(13) Object Library的方法,而不至于在高版本到低版本上“丢失Microsoft Word  14(13) Object Library",影响使用。
    总而言之,对于你给出的答案还是要衷心感谢的。困惑多少个日夜的事一下子就解决了。看来我以后还是要多到excelhome的club来学习学习了。同时有机会也可以将我自学的一些知识分享到此,以利于想了解的人了解一下。

TA的精华主题

TA的得分主题

发表于 2011-7-7 19:01 | 显示全部楼层
原帖由 njwyt 于 2011-7-7 09:52 发表
谢谢你。按照你的思路,我将所有相关的文字描述全部按照对应的数字进行了替换,结果就可以运行了。而且也可以将内容直接先复制到了第一页。但就是步骤有些烦琐。以下的两个问题,请有这方面经验的人是否可以帮忙看看 ...


我做了一个简单的例子,来帮你说明解决问题的方法.

Sub Begin()
   Dim i As Integer, C As Integer, boo_Word As Boolean
   C = Application.VBE.ActiveVBProject.References.Count
   For i = 1 To C
      If Application.VBE.ActiveVBProject.References(i).Name = "Word" Then
         boo_Word = True     '记录是否已经添加引用Microsoft Word Object Library
         Exit For
      End If
   Next
  If Not boo_Word Then
      '如果没有引用Microsoft Word Object Library,则添加之
      Application.VBE.ActiveVBProject.References.AddFromGuid "{00020905-0000-0000-C000-000000000046}", 8, 4
  End If
  CWord
End Sub

Sub CWord()
  Dim appWD As New Word.Application
  appWD.Visible = True
  appWD.Documents.Add
  '以下设置页眉
  With appWD.ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary)
       .Range.Text = "No." & ActiveDocument.Name & " " & _
                     Format(Date, "mmm. dd, yyyy") & " Page "
       .Range.Fields.Add .Range.Characters.Last, wdFieldPage
       .Range.InsertAfter " of page "
       .Range.Fields.Add .Range.Characters.Last, wdFieldNumPages
  End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-7 20:30 | 显示全部楼层

谢谢你再次相助,但运行中出现问题求解

谢谢你的解答。
但在运行到C = Application.VBE.ActiveVBProject.References.Count时,提示运行错误“1004",方法“VBE”作用于对象“—Application”时失败。无法继续运行。附图见附件。谢谢。

无法运行图.rar (190.91 KB, 下载次数: 33)

[ 本帖最后由 njwyt 于 2011-7-7 20:32 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-7-8 08:00 | 显示全部楼层
原帖由 njwyt 于 2011-7-7 20:30 发表
谢谢你的解答。
但在运行到C = Application.VBE.ActiveVBProject.References.Count时,提示运行错误“1004",方法“VBE”作用于对象“—Application”时失败。无法继续运行。附图见附件。谢谢。

953026


需要先在宏安全设置里添加“信任对于"Visual Basic 项目"的访问”才可以正常运行代码。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-9 06:22 | 显示全部楼层
谢谢你耐心地解答。回头再试试看。有问题再请教。不知怎么回事电脑上不能浏览论坛。手机可以。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-9 15:53 | 显示全部楼层

回复 6楼 chylhr 的帖子

谢谢你。已经通过。我是在选项中选定宏设置,再在宏设置中选定信任对VBA工程对象模型的访问。
但这样做不就影响正常使用了吗?我用的是office2010或2007。因为我需要在这两个环境中使用。其他人是不能这样做的呀。是否还有其他方法吗?真的要谢谢你,谢谢你耐心地解答我的问题。

TA的精华主题

TA的得分主题

发表于 2011-7-11 08:33 | 显示全部楼层
原帖由 njwyt 于 2011-7-9 15:53 发表
谢谢你。已经通过。我是在选项中选定宏设置,再在宏设置中选定信任对VBA工程对象模型的访问。
但这样做不就影响正常使用了吗?我用的是office2010或2007。因为我需要在这两个环境中使用。其他人是不能这样做的呀。是 ...


目前我也没有更好的办法.
即使使用外接程序,也是可能需要用户对Word的环境进行设置的.
希望他人有办法帮楼主解决问题.

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-11 10:48 | 显示全部楼层
原帖由 chylhr 于 2011-7-11 08:33 发表


目前我也没有更好的办法.
即使使用外接程序,也是可能需要用户对Word的环境进行设置的.
希望他人有办法帮楼主解决问题.


真的要谢谢你给予无私的帮助。我已经有好长时间没有对此进行研究了。是你又让我重新去研究了。毕竟又跨出了一步了。而且是大大的一大步。再次表示感谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-13 11:01 , Processed in 0.027576 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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