![]() |
|
#1
|
|||
|
|||
![]()
ashbee,
Personally, I prefer list written out as a statement to be comma separated and the last item separated with " and ". I don't know why you used a function to return a string and then that string wasn't used. Here is a revision to the code and the document is attached. Code:
Public Sub SelectItems(oCC As ContentControl) Dim oFrm As frmSelect Dim arrText() As String, strText As String Dim lngList As Long, lngItem As Long, lngSelected As Long Dim arrList() As String Set oFrm = New frmSelect With oFrm .ListBox1.AddItem "Wheelchair Access" .ListBox1.AddItem "Note Taker" .ListBox1.AddItem "No" If Not oCC.ShowingPlaceholderText Then strText = Replace(oCC.Range.Text, ", ", "~") strText = Replace(strText, " and ", "~") arrList = Split(strText, "~") For lngItem = 0 To UBound(arrList) For lngList = lngItem To .ListBox1.ListCount - 1 If .ListBox1.List(lngList) = Trim(arrList(lngItem)) Then .ListBox1.Selected(lngList) = True End If Next lngList Next lngItem End If .show If .Tag = 0 Then GoTo lbl_Exit Else ReDim arrText(0) For lngList = 0 To .ListBox1.ListCount - 1 If .ListBox1.Selected(lngList) Then ReDim Preserve arrText(lngList) arrText(lngList) = .ListBox1.List(lngList) lngSelected = lngSelected + 1 End If Next lngList Select Case UBound(arrText) Case 0 strText = arrText(0) Case 1 strText = arrText(0) & " and " & arrText(1) Case Else For lngList = 0 To UBound(arrText) - 1 If lngList = 0 Then strText = arrText(lngList) Else strText = strText & ", " & arrText(lngList) End If Next lngList strText = strText & " and " & arrText(UBound(arrText)) End Select oCC.Range.Text = strText End If End With lbl_Exit: Unload oFrm Set oFrm = Nothing: Set oCC = Nothing Exit Sub End Sub |
#2
|
|||
|
|||
![]()
Hello Greg,
Thank you for taking the time to look at this - I had tried adding a third case when it should have been Case Else like you've used, I'll definitely try that next time. I think I left the string in from some code I removed to de-anonymise the form - it all works wonderfully thank you so much. For some reason I've found it easier to create Userforms in Excel than Word (mostly in part to being able to have named groups and shapes) but I'm keen to try to recreate some of those forms in Word to try to understand what code needs to be modified where and when. Again thank you - I appreciate your sharing your knowledge. |
#3
|
|||
|
|||
![]()
I've just discovered that adding the selection toolbar allows me to see the names of shapes in Word!! I should now be able to recreate my Excel forms more easily
![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
valaden | Word VBA | 1 | 11-21-2019 08:11 PM |
![]() |
Document Specialist | Word | 2 | 08-17-2018 05:25 AM |
![]() |
derajlance | Word VBA | 1 | 05-13-2016 01:55 PM |
Have Text Entered in Content Control / PreDefined Field Populate Field in Footer | bzowk | Word | 1 | 04-14-2016 11:50 AM |
How-to: Add a quickpart, field or Building Block Gallery Content Control based on a UserForm | HighSierra | Word VBA | 0 | 05-06-2015 08:20 PM |