如何用逗号分隔列表框选择?

How to delimit listbox selections by comma?

我有一个用户表单,其中包含 table 中三个标题的选择列表。每个标题至少有一个选择。我试图用逗号分隔每个选择并以句点结束列表。

table 在单击按钮时填充。

Private Sub CommandButton6_Click()
    Dim tableSequence As Table
    Set tableSequence = ActiveDocument.Tables(1)
    Dim NewRow As Row
    Set NewRow = tableSequence.Rows.Add
    Dim MyString2 As String
    Dim MyString5 As String
    Dim v As Variant
    Dim t As String
    Dim r As String
    Dim i As Long
    Dim L As Long
    Dim var
    Dim var1
    Dim MyString3 As String
    Dim MyString4 As String
    Dim var2
    Dim var3
    Dim p As String
    Dim M As Long
    Dim q As String
    Dim Y As Long
    For var3 = 0 To ListBox7.ListCount - 1
        If ListBox7.Selected(var3) = True Then
            MyString5 = MyString5 & ListBox7.List(var3)
            v = Split(MyString5, ",")
            p = ""
            For M = LBound(v) To UBound(v)
                p = p + v(M)
                If M Mod 3 = 2 Then
                    p = p + vbCr
                Else
                    p = p + ","
                End If
            Next M
            p = Left(p, Len(p) - 1)
            Debug.Print p
        End If
    Next
      
    NewRow.Cells(2).Range.Text = TextBox8.Text
   
    NewRow.Cells(3).Range.Text = TextBox9.Text
    
    NewRow.Cells(4).Range.Text = MyString2
    
    NewRow.Cells(5).Range.Text = "Engineering: " & MyString3 & "." _
      & vbCrLf & "Administrative: " _
      & MyString4 & "." & vbCrLf & "PPE: " & MyString5 & "."
    NewRow.Cells(5).Range.Bold = False
    NewRow.Cells(5).Range.Underline = False
    
    NewRow.Cells(6).Range.Text = ComboBox1.Text
    
    NewRow.Cells(7).Range.Text = ComboBox2.Text
    
    NewRow.Cells(8).Range.Text = ComboBox3.Text
    Dim keywordArr As Variant
    keywordArr = Array("Engineering:", "Administrative:", "PPE:")

    Dim keyword As Variant
    Dim myRange As Variant
    Dim startPos As Integer
    Dim endPos As Integer
    Dim length As Integer
    Dim i1 As Integer
    i1 = 1

    For Each keyword In keywordArr

        Do While InStr(1, myRange, keyword) = 0
            Set myRange = NewRow.Cells(5).Range.Paragraphs(i1).Range
            i1 = i1 + 1
        Loop
        startPos = InStr(1, myRange, keyword)
        startPos = myRange.Characters(startPos).Start
        length = Len(keyword)
        endPos = startPos + length
    
        Set myRange = ActiveDocument.Range(startPos, endPos)
        With myRange.Font
            .Bold = True
            .Underline = True
        End With
    Next keyword

End Sub

我认为从 For var3 到第二个 end if 的代码部分应该提供我的逗号分隔符。

所附图片显示了我在左侧获得的内容与我试图在右侧获得的内容。

您需要在构建字符串时添加逗号。

   For var3 = 0 To ListBox7.ListCount - 1
      If ListBox7.Selected(var3) = True Then
         If MyString5 = vbNullString Then
            MyString5 = ListBox7.List(var3)
         Else
            MyString5 = MyString5 & ", " & ListBox7.List(var3)
         End If
      End If
   Next