通过vba在word中的每个点之前插入标题
有一份文件说明如下: 标题简介通过vba在word中的每个点之前插入标题,vba,ms-word,Vba,Ms Word,有一份文件说明如下: 标题简介 我有一个关于堆栈溢出的帐户 1.1哈哈 1.2嗨 我用它来发布问题 我用它来回答问题 我想将其转换为: 标题简介-1 我有一个关于堆栈溢出的帐户 1.1哈哈 1.2 hi 标题简介-2 我用它来发布问题 标题简介-3 我用它来回答问题 我想知道如何通过宏迭代编号列表集合来实现此目的。您可以这样迭代: Sub iterateNumberedList() Dim oList As Paragraph Selection.GoTo What:=wdGoTo
1.1哈哈
1.2嗨
1.1哈哈
1.2 hi
我想知道如何通过宏迭代编号列表集合来实现此目的。您可以这样迭代:
Sub iterateNumberedList()
Dim oList As Paragraph
Selection.GoTo What:=wdGoToSection, Which:=wdGoToFirst ' go to beginning of doc
' for each paragraph
For Each oList In ActiveDocument.Paragraphs
' is it a numbered list of level 1 ?
If oList.Range.ListFormat.ListType = 4 And oList.Range.ListFormat.ListLevelNumber = 1 Then
' move one line above list item
Selection.MoveUp unit:=wdLine, Count:=1
' insert heading text
Selection.Range.Text = "Heading " & vbCr
' format heading text with style 'Heading 1'
Selection.Range.Style = "Heading 1"
' move down two paragraphs
Selection.MoveDown unit:=wdParagraph, Count:=2
End If
Next
End Sub
这段代码只是为了让你知道该怎么做。这并不是你问题的最终解决办法。Thnaks。这是有道理的!但我无法在循环中使用选择对象。选择的位置不会随着循环的进行而改变。我正在if块中写入Selection.TypeText(“heya”),但是文本一直被插入到光标所在的第一个位置。很抱歉这个愚蠢的问题,但我是vba新手。我无法找到这种行为的根本原因。你能帮我照几张光吗!我从你的答案中了解到了选择对象的概念,我假设它在开始时默认随循环而改变。你为我节省了很多时间:D