是否有一个「;“优雅”;在Word 2007宏(VBA)中实现自动编号的方法?
好的,基本上我们在Word 2007启用宏的模板中有两个独特的部分,对于每个部分,我们有两个表单标准的条目,然后有大约20个可选条目,全部由自动图文集处理。模板和“自动图文集”条目之间的格式相同,我希望在添加条目时自动为条目编号(用户键入“自动图文集”关键字短语或点击功能区上的按钮插入)。 有没有一个简单的方法可以做到这一点? 下面是处理其中一个(编号)条目的代码块,以及我从其他论坛的其他建议中尝试实现的编号方案(在这里找不到任何有用的内容): 任何有建设性的意见都将非常感谢,以帮助解决这个问题。总体而言,我对编程还是很陌生,我的大部分经验都是在C#和Java中 编辑:文件的结构基本上是一组包含法律文本的逐项列表,用户可在上诉过程的各个阶段对其进行更新。在最后两个部分中的每一部分中,分项清单都需要遵循特定的编号方案(编号为.5”,文本为1”,右制表符为1”)这不是Word 2007的原生版本。每个章节都有一个粗体标题,这是编号的起点。自动图文集条目将根据用户的需要添加。文档的其余部分从我们的数据库中提取信息,并包含文档所需的法律措辞。是否有一个「;“优雅”;在Word 2007宏(VBA)中实现自动编号的方法?,vba,ms-word,word-2007,sequential-number,Vba,Ms Word,Word 2007,Sequential Number,好的,基本上我们在Word 2007启用宏的模板中有两个独特的部分,对于每个部分,我们有两个表单标准的条目,然后有大约20个可选条目,全部由自动图文集处理。模板和“自动图文集”条目之间的格式相同,我希望在添加条目时自动为条目编号(用户键入“自动图文集”关键字短语或点击功能区上的按钮插入)。 有没有一个简单的方法可以做到这一点? 下面是处理其中一个(编号)条目的代码块,以及我从其他论坛的其他建议中尝试实现的编号方案(在这里找不到任何有用的内容): 任何有建设性的意见都将非常感谢,以帮助解决这个问题
如果我能想出如何开始为每个部分单独编号,那么我就可以完成这项工作。我实际上已经想出了自己的解决方案。问题是试图在(2)上插入一个自动图文集条目编号行,因为它读取整行并认为它是一个自动图文集条目。它不是只读取ii ff或od ff,而是读取1.ii ff,这不是一个有效的自动图文集条目(按名称) 这允许在空行上插入“自动图文集”条目,并继续预格式化的编号系统,该系统不是Word 2007固有的。现在我只需要找出最简单的方法,在插入的选择中突出特定的单词。应该不会太糟糕:
'set array of text entries (6)
'begin loop
'find and highlight entry(i)
'end loop
为了更好地理解文档结构,能否将链接附加到文档?
Case "cboFF"
SetMargins 0, 1, 1
Selection.ParagraphFormat.Space1
Selection.Text = "FINDINGS OF FACT" & vbLf
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Selection.Font.Bold = True
Selection.Font.Underline = wdUnderlineSingle
Selection.Collapse (wdCollapseEnd)
Selection.Text = vbLf
Selection.ParagraphFormat.SpaceAfter = 6
Selection.Collapse (wdCollapseEnd)
Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
Selection.Font.Underline = wdUnderlineNone
Selection.Font.Bold = False
SetMargins -0.5, 1, 1
'AutoNumberOn
Selection.Text = "1." & vbTab & "On " & strDateFOF & strEntry1 & vbLf
Selection.ParagraphFormat.SpaceAfter = 6
Selection.Collapse (wdCollapseEnd)
Select Case strCaseCategory
Case "IND", "IND SELF-I"
If frmIIOD.optII.Value = True Then
Selection.Text = "2." & vbTab & strIIEntry & vbLf
Selection.ParagraphFormat.SpaceAfter = 6
Selection.Collapse (wdCollapseEnd)
Selection.Text = "3." & vbTab & "" & vbLf
Selection.Collapse (wdCollapseEnd)
End If
If frmIIOD.optOD.Value = True Then
Selection.Text = "2." & vbTab & strODEntry & vbLf
Selection.Text = "3." & vbTab & "" & vbLf
Selection.Collapse (wdCollapseEnd)
End If
If frmIIOD.optNotNeeded.Value = True Then
Selection.Text = "2." & vbTab & "" & vbLf
Selection.ParagraphFormat.SpaceAfter = 6
Selection.Collapse (wdCollapseEnd)
End If
Case Else
'Do Nothing
End Select
'set array of text entries (6)
'begin loop
'find and highlight entry(i)
'end loop