首页 > 解决方案 > 如何将用户表单列表框中的选择填充到项目符号 MS-Word-VBA 中?

问题描述

已编辑

参考我之前问过的一个问题Word 2013-VBA-如何在用户表单列表框中的结果中添加标点符号?,我将如何更改以下代码以填充项目符号格式而不是逗号的结果?

Private Sub Test()
   Dim SelectedTexts As String
   Dim index As Long
   
   For index = 0 To ListBox1.ListCount - 1
      If ListBox1.Selected(index) Then
         SelectedTexts = SelectedTexts & ListBox1.List(index) & ", "
      End If
   Next

   SelectedTexts = Mid(SelectedTexts, 1, Len(SelectedTexts) - 2) & "."
   index = InStrRev(SelectedTexts, ",")
   If index > 0 Then SelectedTexts = Left(SelectedTexts, index - 1) & " and " & Right(SelectedTexts, Len(SelectedTexts) - index - 1)

   ActiveDocument.SelectContentControlsByTitle("test").Item(1).Range.Text = SelectedTexts
End Sub

标签: vbadrop-down-menums-word

解决方案


这是一项微不足道的工作。有人想知道您是否甚至尝试修改现有代码。如果您对其应用合适的项目符号格式,则可以使用现有的内容控件完成全部工作。例如:

Private Sub Test()
   Dim SelectedTexts As String
   Dim index As Long
   
   For index = 0 To ListBox1.ListCount - 1
      If ListBox1.Selected(index) Then
         SelectedTexts = SelectedTexts & ListBox1.List(index) & ";" & vbCr
      End If
   Next

   SelectedTexts = Mid(SelectedTexts, 1, Len(SelectedTexts) - 2) & "."
   index = InStrRev(SelectedTexts, vbCr)
   If index > 0 Then SelectedTexts = Left(SelectedTexts, index - 1) & " and " & Right(SelectedTexts, Len(SelectedTexts) - index + 1)

   ActiveDocument.SelectContentControlsByTitle("test").Item(1).Range.Text = SelectedTexts
End Sub

推荐阅读