交叉引用自定义引用类型

2024-02-05

我正在尝试将交叉引用添加到 SEQ 字段中。
我的文档包含“点标题”,这意味着在两个标题元素之间,用户可以添加扩展名(1.1 和 1.2 之间可能是 1.1A、1.1B,...)

点标题代码如下所示:
{STYLEREF "HEADING 2" \N}{SEQ "HEADING 2 POINT" \* ALPHABETIC \S 2}
结果为:1.1A

我希望能够对点标题进行交叉引用。
虽然我可以将引用类型设置为“标题”,但我不知道如何将其引用到自定义元素。

在网上搜索并没有找到任何解决方案,但有一些线索表明它可能是可能的:

  • 这个网站 http://wordfaqs.ssbarnhill.com/FormatCrossReferences.htm它解释了交叉引用格式,包含具有自定义类型的图像(我的新标题)。
  • 微软文档 https://learn.microsoft.com/en-us/office/vba/api/word.selection.insertcrossreference描述ReferenceType is: The type of item for which a cross-reference is to be inserted. Can be any WdReferenceType or WdCaptionLabelID constant 或用户定义的标题标签.

我的客户习惯于使用交叉引用对话框,因此我更喜欢这种方法,但 VBA 脚本也将受到赞赏。

Thanks!

Update:

我将尝试描述我的限制和环境。
标题 1-9 在多级列表项中使用,因此它们具有自定义样式。
它们无法改变。

对于具体任务,进行描述和回答here https://stackoverflow.com/questions/49717460/creating-a-dynamic-list-number-in-ms-word-using-vba,我创建了所谓的“点标题”。
“点标题”基本上是用户可以使用 VBA 宏在多级编号之间添加的扩展。
假设我有两个标题 2 项(1.1、1.2),用户可以添加 1.1A,然后添加 1.1B,依此类推。
用户可以添加从 2 级到 5 级的点标题。
他们的风格是“标题2点”、“标题3点”等等,每一种都是基于其相关的标题。

如上所述,最终在文档中,word字段具有以下结构:{STYLEREF "HEADING 2" \N}{SEQ "HEADING 2 POINT" \* ALPHABETIC \S 2}.

我的目标是能够交叉引用这些项目,但它们不会出现在标题类型中,因为它们不是标题样式。

我希望能够创建一个自定义引用类型,它将显示这些项目。


经过一番研究,这是我的答案。希望它会对未来的观众有所帮助。

Private Sub createPointHeader(pointLevel As Integer, Optional appendixPrefix As String = "")
Dim sQuote As String, referencedStyle As String, captionName As String
sQuote = Chr(34)
referencedStyle = appendixPrefix & "Heading " & pointLevel
captionName = referencedStyle & " Point"
With Selection
    .Fields.Add .Range, wdFieldEmpty, "StyleRef " & sQuote & referencedStyle & sQuote & " \n", False
    .Collapse wdCollapseEnd
    CaptionLabels.Add (captionName)
    .InsertCaption Label:=captionName, ExcludeLabel:=True
    ' Select the created field
    .MoveLeft Count:=1, Extend:=True
    ' Replace the syntax from Arabic to Alphabetic
    .Fields.ToggleShowCodes
    With .find
        .Text = "ARABIC"
        .Forward = False
        .Wrap = wdFindStop
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchKashida = False
        .MatchDiacritics = False
        .MatchAlefHamza = False
        .MatchControl = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute
        If .Found = True Then
            Selection.Range.Text = "ALPHABETIC \s " & pointLevel
        End If
    End With

    .Fields.ToggleShowCodes
    .Fields.Update
    .MoveRight Count:=1
    .InsertAfter vbTab
    .Collapse wdCollapseEnd
    ' Apply style after .InsertCaption, because it changes the style to Caption
    .Style = ActiveDocument.Styles(referencedStyle & " Point")
    End With
End Sub

几句话

  • 我有两种样式可供参考:标题 (2-5) 和附录标题 (2-5)。这就是可选附录前缀作为子变量的原因。
  • CaptionLabels.Add正如我所检查的,可以获得相同的值。无需提前检查它是否已经存在。
  • Selection.InsertCaption自动将样式更改为Caption。这就是我最后应用样式更改的原因。

结果

  • 这是如何点标题 2好像:
    {STYLEREF "HEADING 2" \N"}{SEQ HEADING_2_POINT \* ALPHABETIC \S 2}

  • Snapshot of the document with the point headings Point Headings example

  • And finally, as requested, cross reference to the Point headings from the Cross reference box Cross reference dialog box

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

交叉引用自定义引用类型 的相关文章

  • 使用图表时避免使用“激活”和“选择”(Excel)

    我知道使用Activate and Select在 Excel 中 VBA 不是最佳实践 我看过有关如何在处理范围时避免它们的参考资料 例如 LINK https stackoverflow com questions 10714251 e
  • VBA将二进制图像转换为网页的base64编码字符串

    我正在尝试读取 JPG 文件并将该文件转换为 base64 编码的字符串 该字符串可用作网页上的嵌入 jpeg 我在网上发现了两个在 VBA 中进行 Base64 编码 解码的函数 它们似乎被广泛接受 编码 解码过程产生了我的原始二进制字符
  • Excel VBA:声明通用对象与指定对象类型之间的区别

    我发现使用声明为的变量出现了意外的 至少对我来说 行为Object在 Excel vba 中 我试图从 html 页面中提取一些数据 所以我使用了这样的例程 sub Test Dim htmlPage As htmlDocument Thi
  • 在 Rmarkdown 中将标题拆分为两行以进行单词输出

    我见过各种适用于 pdf 和 HTML 文档输出的解决方案 然而 没有一个对我的文字输出有用 使用时 正如这里所建议的 将标题拆分为多行 https stackoverflow com questions 30537515 split th
  • 使用 VBA 跟踪 Excel 2007/2010 中的样式更改

    我需要跟踪某些工作表中的单元格样式变化 我无法在 Excel 2007 2010 中使用内置跟踪 因为我需要自定义某些内容 我尝试通过 Workbook SheetChange 跟踪样式更改但失败了 当我将单元格从一种样式更改为另一种样式时
  • Excel宏R1C1公式不保留值

    我有一个 Excel 宏 它创建一个新的 Excel 工作表并用可变数量的行填充它 我有一个变量中存储的行数的计数 我正在使用 R1C1 公式根据行数将两个单元格相乘 在宏中 公式看起来是正确的 如果我添加一个断点并在其上放置一个手表 但是
  • 使用 VBA 和 Selenium 驱动网站,pt2

    In 这个问题 https stackoverflow com questions 43808508 driving a website using vba and selenium在推动我的 VBA Selenium 项目前进方面 我收到
  • Excel 表格:识别未使用的代码

    我正在更新一个excel questions tagged excel由其他人编写的应用程序 当然 我发现很多没用过的Sub CommandButtonXX Click subs 而且我并不总是确定该按钮是否仍然存在 有没有办法 程序 VB
  • 如何判断约会是否是周末?

    给定一个日期作为输入 我如何确定这一天是否是周末 有一个 Weekday 函数 它接受 Date 作为参数并返回日期 1 2 3 等 返回值为 vbSunday 1 vbMonday 2 vbTuesday 3 vbWednesday 4
  • 单步执行会产生与运行不同的结果

    我有一段代码用于拆分单元格中的文本 数据是由不使用任何有用的分隔符的调查程序输出的 因此不幸的是 将文本转换为列对我没有任何帮助 我写了这段代码 但事实证明 两种情况下结果是不同的 我一步步运行代码 直到添加第一列 然后让它完成 我从执行宏
  • 出现错误时如何中断?

    我有一个函数 其中某个地方有一些错误导致它返回 VALUE当我尝试在Excel中执行它时 我不知道错误在哪里 单步调试代码也很乏味 所以我希望调试器在发生错误时立即中断 我尝试去Tools gt options gt General gt
  • Apache POI 编号列表

    我在用apache poi在 MS Word 文档中写入一些数据 我已经花了几个小时试图弄清楚如何创建编号列表但我还没有取得任何成果 我已经经历过this https stackoverflow com questions 31310020
  • Excel IE 自动化识别“css”元素

    仍然在抓取网站 从网页打印等方面进行掠夺 但遇到了一个障碍 我希望有人可以帮助我 下图显示了我想要激活的选项卡 我有代码可以到达那里 但无法激活该选项卡 虽然最后一行代码可以在我的台式电脑上运行 但我无法让它在我的其他电脑上运行 我可能可以
  • VBA 中的 Excel 下拉列表:“无法获取工作表类的 DropDowns 属性”

    我有这个代码 Sub addDropdown Name ActiveSheet DropDowns Add 74 25 60 188 25 87 75 Select Set n ActiveSheet DropDowns Name If N
  • 如何使用 VBA 在 Excel 中搜索单词然后删除整行? [复制]

    这个问题在这里已经有答案了 请有人帮忙 我正在尝试编写一个 VBA 代码 在 Excel 工作表 D 列中搜索特定单词 DR 然后删除整行 工作表中特定单词多次出现 我想做的就是搜索这些出现的情况 然后删除包含这些单词的整行 我的问题是我不
  • 在vba中为图例设置颜色代码

    我在每个工作表中都有数据透视表 我必须对它们进行比较 但每个工作表中图例的颜色都不同 如何设置颜色 例如 如果我的图例条目是 ISO 我希望它始终为 蓝色 如果它是 LAT 我希望它在每张纸中都为 红色 这可以通过操纵来完成Series中的
  • Mac 上使用 Excel VBA 进行正则表达式

    我需要将 regEx 与 Excel VBA 一起使用 我使用的是 Mac OS 10 10 和 Office 2011 因此没有可以使用的 DLL 文件 这里有什么可做的 我读到我必须绑定一个苹果脚本 这是如何完成的以及该脚本需要什么内容
  • Worksheet_Change 事件未触发

    我的 Excel 项目在家中可以正常运行 带有Excel 2010 但不能在两台工作计算机上 使用Excel 2016 并且我怀疑Worksheet Change事件就是问题 当用户进行更改时 黄色条 屏幕截图中 应再次变为白色 但事实并非
  • VBA半正矢公式

    我正在尝试将半正矢公式应用到Excel函数中 它看起来像这样 Public Function Haversine Lat1 As Variant Lon1 As Variant Lat2 As Variant Lon2 As Variant
  • 在打开的Word文档中找到未知的姓名和姓氏,将其复制并使用excel VBA粘贴到excel .activesheet中的单元格A12中

    你好 Stackoverflow 社区 我的目标是编写一个宏 在之前打开 活动的 Word 文档中查找未知姓名 或两个名字都写成 Firstname Secondname 和姓氏 或两个姓氏写成 Firstsurname Secondsur

随机推荐

  • 如何在 Web 应用程序中控制 iPhone 的屏幕方向

    我有一个非常基本的网页 它使用 flot 来创建canvas基于图 类似于 SO 用于声誉图的图 对于 PC 显示器 它应该正常输出 宽度 x 轴 为高度的 1 6 倍 但对于 iPhone 我希望页面默认为横向 而不是让它以 纵向 方向溢
  • 从 Snowflake 中的字符串中删除非 ASCII 字符

    如何从 Snowflake SQL 中的字符串中删除所有非 ASCII 字符 我遇到过使用 T SQL 等的解决方案 但没有关于如何在雪花中执行此操作的文章 正则表达式应该足够了 除非您考虑其他情况 select regexp replac
  • 存储凭据以供自动使用

    我已经环顾四周 由于我不是安全或加密专家 所以我仍然对如何在程序中实现加密感到困惑 我需要一台服务器来登录其 gitHub 帐户 以更新具有特殊标头的代码文件 我现在遇到的唯一难题是如何存储 检索服务器的凭据 PushOptions pus
  • 使用 Jackson 将消息从 JSON 反序列化为 POJO

    如果您在不检查消息的情况下不知道要使用什么类型的 POJO 那么如何使用 Jackson 将 JSON 文档反序列化为 POJO 有没有办法向 Jackson 注册一组 POJO 以便它可以根据消息选择一个 我试图解决的场景是通过线路接收
  • 如何在 Laravel 中将集合或自定义查询分页到 API json 中?

    我有一个复杂的查询 该查询不基于我想要对其输出进行分页的任何特定模型表 然而 Laravel 的内置分页依赖于模型和表格 如何对集合进行分页并使输出与 laravel 内置的分页输出格式匹配 我将其保存在 app Core Helpers
  • Rails 3:延迟加载与急切加载

    在 Rails 3 中 这些是相同还是不同 它们有何不同 o Appointment find 297 o service o Appointment includes service find 297 o service 我不确定 但看起
  • Scala Option 对象位于另一个 Option 对象内

    我有一个模型 其中有一些选项字段 其中包含另一个选项字段 例如 case class First second Option Second name Option String case class Second third Option
  • WiX,如何防止文件卸载,尽管我们忘记设置永久=“是”

    我们有一个用 Wix 创建的产品安装程序 其中包含一个程序包 V1 和一些配置文件 现在 我们将使用新的产品代码进行重大升级 其中旧版本的产品被卸载并且 V2 已安装 我们想要的是保存其中一个配置文件以防止卸载 因为 V2 也需要它 不幸的
  • R:深度复制函数参数

    考虑下面的代码 i 3 j i i 4 j i 然而 我想要的是 i 3 f lt function x j i x j i 4 f 4 16 but i want it to be 12 如果您想知道为什么我要这样做 您可以考虑这段代码
  • Java反射:如何从对象获取字段值,而不知道它的类

    比如说 我有一个返回自定义的方法List与一些物体 它们返回为Object大部头书 我需要从这些对象中获取某个字段的值 但我不知道这些对象的类 有没有办法通过反射或其他方式来做到这一点 假设一个简单的情况 你的领域是public List
  • 字形未加载

    由于某种原因 当我使用 twitter bootstrap 2 3 2 时 图像的图标未加载 我有默认结构 CSS 图像 js 其他一切都有效 我也尝试添加一个简单的图标 例如 span class icon icon ok OK span
  • RabbitMq - ConversationId 与 CorrelationId - 哪个更适合跟踪特定请求?

    RabbitMQ 似乎有两个非常相似的属性 我并不完全理解其中的区别 ConversationId and CorrelationId 我的用例如下 我有一个网站 可以生成Guid 该网站调用 API 将该唯一标识符添加到HttpReque
  • 类型错误:“builtin_function_or_method”对象没有属性“__getitem__”

    我有简单的python功能 def readMainTemplate templateFile template open templateFile r data template read index1 data index origin
  • 类型错误:无法读取反应中未定义的属性“减少”

    我有一个表单 要求用户输入几个字段的字段值 将字段值存储在状态中并以自定义格式显示状态值 所以 我有几个输入字段和一个提交按钮
  • 如何使用 Bash 脚本自动添加用户帐户和密码?

    我需要能够在 Linux Fedora 10 上创建用户帐户 并通过 bash 脚本 或其他方式 如果需要的话 自动分配密码 通过 Bash 创建用户很容易 例如 whoever server usr sbin useradd newuse
  • Angular 2中的zip文件上传问题

    当我尝试上传 zip 文件时 不幸的是它没有上传到服务器上 它给了我错误 有些事情发生了 这是我的代码 const event this fileEvent console log FileEvent gt event const file
  • 在开发容器中运行 VSCode 时如何打开本地终端?

    我正在使用 VSCode 从内部编写代码VSCode 容器 https code visualstudio com docs remote containers 我可以在开发容器内打开终端 https code visualstudio c
  • SHA256 哈希值有多长?

    我要跑SHA256密码 盐 但我不知道要花多长时间VARCHAR设置 MySQL 数据库时 什么是好的长度 正如其名称所示 sha256 的长度为 256 位 由于 sha256 返回十六进制表示 4 位足以编码每个字符 而不是 8 位 如
  • ActionBar 中的 XP 样式字形烦恼

    我不想问太多与组件外观相关的问题 但如今应用程序中的外观似乎同样重要 无论如何 请看下面的图片 两者都使用 TActionManager 和 TActionMainMenuBar 来创建我的主菜单 图像左侧的菜单使用平台默认样式 右侧的菜单
  • 交叉引用自定义引用类型

    我正在尝试将交叉引用添加到 SEQ 字段中 我的文档包含 点标题 这意味着在两个标题元素之间 用户可以添加扩展名 1 1 和 1 2 之间可能是 1 1A 1 1B 点标题代码如下所示 STYLEREF HEADING 2 N SEQ HE