我在编写邮件合并时遇到了一些问题,因为我的代码创建的每个内容都必须被删除,以免在合并过程中妨碍下一个字母。
所以我写了一个测试宏只是为了创建一些表并删除它们。
这是我的进度 - 它可以在一个新的空 Word 文件中运行,该文件带有一个名为“test”的书签
Sub TabsNText()
Const k As Integer = 2
Dim doc As Document
Dim rng As Range
Dim tab_rngs(k) As Range
Dim txt_rngs(k) As Range
Dim tbl As Table
Set doc = Word.ActiveDocument
Set rng = doc.Bookmarks("test").Range
Dim i As Integer
For i = 1 To k
Set txt_rngs(i) = rng
rng.Text = "Title " & i
rng.Collapse Direction:=wdCollapseEnd
rng.InsertParagraphAfter
rng.Collapse Direction:=wdCollapseEnd
Set tab_rngs(i) = rng
Set tbl = doc.Tables.Add(rng, 3, 3)
tbl.Cell(1, 1).Range.Text = "Table" & i
tbl.Borders.Enable = True
Set rng = tbl.Range
rng.Collapse Direction:=wdCollapseEnd
rng.InsertParagraphAfter
rng.Collapse Direction:=wdCollapseEnd
Next i
rng.Select
MsgBox ("Now, let's delete that!")
For i = 1 To k
txt_rngs(i).Text=""
tab_rngs(i).Tables(1).Delete
doc.Bookmarks.Add Name:="test", Range:=rng
Next i
End Sub
你看。表格将被正确删除。但是文本和段落呢?有没有一种方法可以从起点到终点进行选择并删除其所有内容。