我正在努力获取它,以便如果某人在用户窗体的列表框中选择了多个项目,那么这些项目将全部打印在从设置书签开始的Word文档中。我把它们作为连续的If语句来做,希望能够使它们只是叠加在一起。但是不行。任何帮助,将不胜感激。有更多的州有联系信息,但我认为这样可以更容易使用。
With ActiveDocument
.Bookmarks("Contact").Select
Dim varItem As Variant
Dim i As Long
Do While Len(Me.lstState & vbNullString) > 0
For Each varItem In lstState
For i = 0 To Len(Me.lstState) - 1
If lboState.Selected(i) = "Alabama" Then
.Selection.WriteLine ("Alabama UI: 866-555-5382")
.Selection.WriteLine ("www.alabama.com")
.Selection.WriteLine ("")
End If
If lstState.Selected(i) = "Alaska" Then
.Selection.WriteLine ("Alaska UI: 907-555-5552")
.Selection.WriteLine ("www.alaska.us")
.Selection.WriteLine ("")
End If
Next i
Next varItem
Loop
End With
答案 0 :(得分:0)
这是你应该寻找的:
Dim i As Integer
With ActiveDocument
.Bookmarks("Contact").Select
For i = 0 To lstState.ListCount - 1
If lstState.Selected(i) = True Then
If lstState.List(i) = "Alabama" Then
Selection.TypeText ("Alabama UI: 866-555-5382") & vbCr
Selection.TypeText ("www.alabama.com") & vbCr
Selection.TypeText vbCr
End If
If lstState.List(i) = "Alaska" Then
Selection.TypeText ("Alaska UI: 907-555-5552") & vbCr
Selection.TypeText ("www.alaska.us") & vbCr
Selection.TypeText vbCr
End If
End If
Next i
End With
夫妻俩错了:
所以只是一点VBA不正确,但你会学习。我在每个项目(vbCr)之后添加了换行符,但您可以更多地使用格式。如果您计划遍历每个州,请查看SELECT ... CASE。
编辑:我再次将整数调整为整数,因为我已经删掉了一些OP的代码而忘了替换它。