ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 【更新完毕】用VBA代码写嵌套域的方法简化

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-6-16 20:19 | 显示全部楼层
正要学习域  感谢~!

TA的精华主题

TA的得分主题

发表于 2016-4-21 15:37 | 显示全部楼层

“嵌套域1”比较适合我,第一个好像内层的出不来,我也模仿为“多重嵌套域”,与“照片域'内似,改写了,虽然不成功,可能学的不像。谢谢楼主!
  1. Sub 多重嵌套域()
  2. Dim aField As Field, bField As Field
  3. Dim aRange As Range
  4. Set aField = Selection.Fields.Add(Range:=Selection.Range, Type:=wdFieldEmpty, PreserveFormatting:=False)
  5. Set bField = Selection.Fields.Add(Range:=Selection.Range, Type:=wdFieldEmpty, PreserveFormatting:=False)
  6. Set cField = Selection.Fields.Add(Range:=Selection.Range, Type:=wdFieldEmpty, PreserveFormatting:=False)
  7. With ActiveDocument
  8.     Set aRange = aField.Code
  9.     .Range(aRange.Start, aRange.Start).Text = "INCLUDEPICTURE"
  10.     .Range(aRange.End, aRange.End).Text = "\d \* MERGEFORMAT "
  11.     Set bRange = bField.Code
  12.     .Range(bRange.Start, bRange.Start).Text = " IF TRUE"
  13.     Set cRange = cField.Code
  14.     .Range(cRange.Start, cRange.Start).Text = "MERGEFIELD ""C:\\Users\\lenovo\\Desktop\\psb1.jpg"""
  15. End With
  16. 'aField.Update
  17. 'bField.Update
  18. 'cField.Update
  19. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2016-4-21 15:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
平行并排域:(名词不对,是那个意思)
  1. Sub 平行域()
  2. Dim aField As Field, bField As Field
  3. Dim aRange As Range
  4. Set aField = Selection.Fields.Add(Range:=Selection.Range, Type:=wdFieldEmpty, PreserveFormatting:=False)
  5. Selection.MoveRight Unit:=wdCharacter, Count:=2
  6. Set bField = Selection.Fields.Add(Range:=Selection.Range, Type:=wdFieldEmpty, PreserveFormatting:=False)
  7. With ActiveDocument
  8.     Set aRange = aField.Code
  9.     .Range(aRange.Start, aRange.Start).Text = "INCLUDEPICTURE"
  10.     .Range(aRange.End, aRange.End).Text = "\d \* MERGEFORMAT "
  11.     Set bRange = bField.Code
  12.     .Range(bRange.Start, bRange.Start).Text = " IF TRUE"
  13. End With
  14. 'aField.Update
  15. 'bField.Update
  16. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2018-9-14 08:42 | 显示全部楼层

非常感谢您提供的方法,但是如果要将嵌套域写入word文档的表格单元格中该如何修改?

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-16 11:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
时空管家 发表于 2018-9-14 08:42
非常感谢您提供的方法,但是如果要将嵌套域写入word文档的表格单元格中该如何修改?

参考7楼8楼,对着range写

TA的精华主题

TA的得分主题

发表于 2018-9-17 09:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 时空管家 于 2018-9-17 09:45 编辑
loquat 发表于 2018-9-16 11:51
参考7楼8楼,对着range写
按照您的代码更改后可以使用,但是如果改到cell(1,2)就出错了,麻烦帮忙看看什么问题,先谢过了。
Sub test()
    Dim aRange As Range, aField As Field
    Application.ScreenUpdating = False
    Set aRange = ActiveDocument.Content.Tables(1).Cell(1, 1).Range
    aRange.MoveEnd , -1
    Set aField = aRange.Fields.Add(aRange, wdFieldEmpty, "INCLUDEPICTURE  ""D:\\记录卡照片[url=]\\\\\\[/url] (1).jpg""  \* MERGEFORMAT", False)
    aRange.SetRange 32, 34  '取aRange对象的第3到第3位作为新的aRange对象
    Set bField = aRange.Fields.Add(aRange, wdFieldEmpty, "REF MaterCode \h", False)
    aRange.SetRange 30, 32  '取aRange对象的第3到第3位作为新的aRange对象
    Set bField = aRange.Fields.Add(aRange, wdFieldEmpty, "REF MaterCode \h", False)
    aRange.SetRange 28, 30  '取aRange对象的第3到第3位作为新的aRange对象
    Set bField = aRange.Fields.Add(aRange, wdFieldEmpty, "REF EquipName \h", False)
    Application.ScreenUpdating = True
End Sub

TA的精华主题

TA的得分主题

发表于 2018-9-17 09:44 | 显示全部楼层
时空管家 发表于 2018-9-17 09:42
Sub test()
    Dim aRange As Range, aField As Field
    Application.ScreenUpdating = False

按照您的代码更改后可以使用,但是如果改到cell(1,2)就出错了,麻烦帮忙看看什么问题,先谢过了。

TA的精华主题

TA的得分主题

发表于 2020-5-25 17:49 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-6-4 18:20 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-24 08:43 , Processed in 0.031680 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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