[英]VBA Userform with Textbox - formatting the text
所以我對 VBA 很陌生。 我創建了一個非常簡單的模板,當打開它時,會給我一個表單來填寫,它將通過命令按鈕將文本插入到文檔中。
我正在嘗試更進一步,但不確定如何將代碼組合在一起。 為了插入文本,我使用了書簽功能。 在我的表單上,我有 4 個文本框作為選項。 如果所有 4 項都填寫,則文本如下所示:
選項 1 選項 2 選項 3 選項 4
我需要它看起來像:
選項 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
如果這些書簽是連續的,則不需要四個書簽。 添加以下模塊級變量:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.