Vba 在MS Word中将多个选定的响应返回到书签
我有一个word文档,用户单击一个commandbutton,它会显示一个userform,上面有一个multiselect列表框(listbox1)和一个commandbutton(cmnd1)。我希望用户选择多个项目,然后单击命令按钮 这会导致userform消失,所选项目在MS word文档(bkmrk1a)中的书签处显示为字符串 我可以很容易地做到这一点与单一选择。我被multiselect绊倒了 以下是我正在使用的代码:Vba 在MS Word中将多个选定的响应返回到书签,vba,listbox,ms-word,multi-select,Vba,Listbox,Ms Word,Multi Select,我有一个word文档,用户单击一个commandbutton,它会显示一个userform,上面有一个multiselect列表框(listbox1)和一个commandbutton(cmnd1)。我希望用户选择多个项目,然后单击命令按钮 这会导致userform消失,所选项目在MS word文档(bkmrk1a)中的书签处显示为字符串 我可以很容易地做到这一点与单一选择。我被multiselect绊倒了 以下是我正在使用的代码: `Option Explicit Priva
`Option Explicit
Private Sub UserForm_Initialize()
Dim i, Str As String
Str = "Rating1,Rating2,Rating3,Rating4,"
For i = 0 To UBound(Split(Str, ","))
ListBox1.AddItem Split(Str, ",")(i)
Next
End Sub
Private Sub CommandButton1_Click()
Selection.Text = ListBox1.Value
Application.ScreenRefresh
End Sub
任何帮助都将不胜感激。我是VBA新手
标记要在列表框上启用multiselect,只需将
.multiselect
属性设置为fmMultiSelectMulti
或fmMultiSelectExtended
。后者允许您使用shift键选择多个项目。ie在初始化中:
ListBox1.MultiSelect = fmMultiSelectExtended
然后,当您单击commandbutton时,需要循环浏览列表项并检查它们是否已被选中。即:
Private Sub CommandButton1_Click()
Dim ii As Integer
For ii = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(ii) Then
Selection.Text = ListBox1.List(ii)
Selection.MoveRight
Selection.TypeParagraph
End If
Next ii
Application.ScreenRefresh
End Sub