我正在向 Word 文档添加文本,需要包含下标



我使用单词互操作打开了一个word文档,并添加了几段文本。它们的长度因一系列因素而异。然后我添加一行在下标中包含 CR 的文本,如下所示(字母 CR 的下标不包含在 Unicode 下标中(:

Dim word As Word.Application = New Word.Application()
Dim doc As Word.Document
'more code inserting paragraphs here

Dim Paratext as string
Paratext = "Elastic Critical Buckling Load  N_CR=(π² (E/Yₘ )I)/(L_CR∙L² )"
para0 = doc.Content.Paragraphs.Add
para0.Range.Text = Paratext
para0.Range.InsertParagraphAfter()
para0.Range.Style = doc.Styles("Normal")
Dim Rstart As Int16 = Paratext.IndexOf("CR")
Dim Rend As Int16 = Paratext.IndexOf("=")
' this is wrong: I select the range in the document
' using the location in the paragraph.
Dim SRange = doc.Range(Rstart, Rend)
SRange.Select()
Dim currentselection As Word.Selection = word.Selection
currentselection.Font.Subscript = 1

编辑:我选择了错误的文本。 我正在确定我刚刚添加的段落中字母 CR 的位置,并将其应用于已经添加了多个段落的文档。 因此,文档索引 35 和 36 处的两个字符而不是段落成为下标。 如何获取刚刚添加的段落开头的索引?

修复了它:

Dim word As Word.Application = New Word.Application()
Dim doc As Word.Document
'more code inserting paragraphs here
'locate the end of the document so far
Dim DocEnd As Int16 = doc.Content.End - 1
Dim Paratext as string
Paratext = "Elastic Critical Buckling Load  N_CR=(π² (E/Yₘ )I)/(L_CR∙L² )"
para0 = doc.Content.Paragraphs.Add
para0.Range.Text = Paratext
para0.Range.InsertParagraphAfter()
para0.Range.Style = doc.Styles("Normal")
Dim Rstart As Int16 = Paratext.IndexOf("CR")
Dim Rend As Int16 = Paratext.IndexOf("=")

Dim SRange = doc.Range(Rstart + DocEnd, Rend + DocEnd)
SRange.Select()
Dim currentselection As Word.Selection = word.Selection
currentselection.Font.Subscript = 1

最新更新