所以我对VBA很新。我创建了一个非常简单的模板,在打开时,给我一个表单来填写,它将通过命令按钮将文本插入到文档中。
我正在尝试更进一步,但我不确定如何将代码整合在一起。要插入文本,我正在使用书签功能。在我的表单上,我有4个文本框作为选项。如果全部填写4,则文本如下:
Option1Option2Option3Option4
我需要它看起来像:
选项1,选项2,选项3和选项4
不仅如此,我还希望根据填写的文本框的数量添加“和”。例如,如果我只填充前两个,我需要它看起来像:
选项1和选项2
这有意义吗?以下是目前的结构。我很感激前进的任何指示。
Private Sub cmdSubmit_Click()
Application.ScreenUpdating = False
With ActiveDocument
.Bookmarks("Program1").Range.Text = TextBox1.Value
.Bookmarks("Program2").Range.Text = TextBox2.Value
.Bookmarks("Program3").Range.Text = TextBox3.Value
.Bookmarks("program4").Range.Text = TextBox4.Value
End With
Application.ScreenUpdating = True
Unload Me
End Sub
答案 0 :(得分:0)
如果这些书签是连续的,则不需要四个书签。添加以下模块级变量:
Private s As String, hasAnd As Boolean
创建一个Sub
,它将文本框的文本添加到私有变量中,并根据需要插入逗号或and
:
Private Sub AppendText(txt As TextBox)
If Len(txt.Text) = 0 Then Exit Sub
If Len(s) = 0 Then
s = txt.Text
ElseIf Not hasAnd Then
hasAnd = True
s = txt.Text & " and " & s
Else
s = txt.Text & ", " & s
End If
End Sub
按相反顺序调用每个文本框的子过程:
AppendText TextBox4
AppendText TextBox3
AppendText TextBox2
AppendText TextBox1
然后,使用s
的值作为书签的文本:
ActiveDocument.Bookmarks("Program1").Range.Text = s