问题描述
我正在尝试创建一个用户窗体,其中用户在文本框中键入标题,然后单击命令按钮以添加引用。我希望一个文本框和一个命令按钮将新项目添加到类似于以下内容的alpha列表中的单独一行上:
a)参考标题1 b)参考标题2 c)参考标题3
每个列出的项目都在新的左对齐行上。
Private Sub CommandButton3_Click()
'Define the variable oVars
Set oVars = ActiveDocument.Variables
oVars("REF").Value = TextBox7.Value
ActiveDocument.Fields.Update
Me.TextBox7 = Null
Me.TextBox7.SetFocus
End Sub
有一个我要完成的屏幕截图。上部是我创建的表单,底部是希望的结果。很抱歉无法更好地解释自己
解决方法
我将通过向文档中添加“无法删除内容控件”的RTF格式内容控件来解决此问题。如果将其添加到以编号样式设置的段落中,则无需为条目编号。
下面的例程应该放置在标准模块(即非用户表单)中,如果其中已经包含文本,则会更新内容并添加回车符。
此方法的优点是,控件中的文本可以根据需要直接编辑,而无需用户表单,可以自动更新,并且可以在文档的整个生命周期中重复添加。与书签不同,它无法删除。
Sub AddTextToContentControl(workDoc As Document,ccTitle As String,textToAdd As String)
Dim ctrl As ContentControl
Set ctrl = GetContentControlByTitle(workDoc,ccTitle)
If Not ctrl Is Nothing Then
If ctrl.ShowingPlaceholderText Then
'replace the placeholder text
ctrl.Range.text = textToAdd
Else
'add to the existing text
ctrl.Range.text = ctrl.Range.text & vbcr & textToAdd
End If
End If
End Sub
您可以这样从用户表单中调用它:
Private Sub CommandButton3_Click()
AddTextToContentControl ActiveDocument,"References",TextBox7.Value
Me.TextBox7 = Null
Me.TextBox7.SetFocus
End Sub