我试图生成在子弹列表中的一个书签,线下一个书签,使得Word文档开始为动态分配书签的项目符号列表在Word
- [Bookmark1]
,然后被变换成
- [Bookmark1]
- [Bookmark2]
- 等
这样我就可以逐行调整列表的格式并在列表中输入文本。 1D数组Level()控制它将要使用哪种类型的项目符号。书签是基于动态分配的一维数组(称为clar())动态创建的,该数组包含来自工作表上不同点的文本。该程序不知道数组在运行前将包含多少行文本。下面的代码将运行,但该程序的输出是
- [Bookmark1]
会变成(后6次迭代)
- [Boomark6]
所以我只有一个名为Bookmark6的书签,而不是列表中的六个。我试图在上一个书签的结尾处使用该范围,但这不会在下一个项目符号点或当前书签之外设置范围。我也尝试使用wbNewLine来扩大范围,然后在范围的最后设置,但这是无效的。
Dim Count As Integer
Dim CountM As Integer
Count = 1
Do While Clar(Count) <> ""
CountM = Count - 1
PrevBmarkName = "Clar" & CountM
BmarkName = "Clar" & Count
BmarkText = Clar(Count)
If Count <> 1 Then
Set prevRange = wrdDoc.Bookmarks(PrevBmarkName).Range
Set newRange = prevRange
newRange.SetRange prevRange.End, prevRange.End
ActiveDocument.Bookmarks.Add "BmarkName", newRange
If DesClar(Count + 1) = "" Then 'Stops the program from generating a blank bullet
wrdRange.Text = BmarkText
wrdDoc.Bookmarks.Add Name:=BmarkName, Range:=wrdRange
Level = Check1(Count) 'Used to adjust the bullet level/type
If Level = 1 Then wrdRange.Style = wrdDoc.Styles("SD Bullets")
If Level = 2 Then wrdRange.Style = wrdDoc.Styles("SD Bullets 2")
Else
wrdRange.Text = BmarkText & vbNewLine
wrdDoc.Bookmarks.Add Name:=BmarkName, Range:=wrdRange
Level = Check1(Count)
If Level = 1 Then wrdRange.Style = wrdDoc.Styles("SD Bullets")
If Level = 2 Then wrdRange.Style = wrdDoc.Styles("SD Bullets 2")
End If
Else 'Only used on the first iteration because it uses Bookmark1
Set wrdRange = wrdDoc.Bookmarks(BmarkName).Range
wrdRange.Text = BmarkText & vbNewLine
wrdDoc.Bookmarks.Add Name:=BmarkName, Range:=wrdRange
Level = Check1(Count)
If Level = 1 Then wrdRange.Style = wrdDoc.Styles("SD Bullets")
If Level = 2 Then wrdRange.Style = wrdDoc.Styles("SD Bullets 2")
End If
Count = Count + 1
CountM = CountM + 1
Loop