簡體   English   中英

帶有文本框的 VBA 用戶表單 - 格式化文本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM