以下是引用hao123在2005-1-17 20:33:00的发言:
理解!支持,给版主添麻烦了,致歉!不过我不是领导,*^_^*[em31]
谢谢大家的关心和支持……
很希望今天晚上把这个问题弄清楚,然后向版主交一份作业……
期待……
以下代码供参考:
'* +++++++++++++++++++++++++++++++++++++++
'* Created By I Love You_Word!@ExcelHome 2005-1-18 07:06:50
'仅测试于System: Windows NT Word: 10.0 Language: 2052
'^The Code CopyIn [用户窗体-UserForm1]^'
'* --------------------------------------------------------------------------
Dim Doc As Document, BK As Bookmark, TF As Boolean
Private Sub ComboBox1_Change()
End Sub
'----------------------
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim N As Integer
On Error Resume Next
If TF = True Then Exit Sub '如果发生了关闭窗体则此事件不发生
If ComboBox1.Text <> "" Then '如果组合框输入有文本
Me.ComboBox1.AddItem ComboBox1.Text '自动添加到组合框中
Me.ListBox1.Clear '清空列表框
For Each BK In Doc.Bookmarks '在指定的文档书签中循环
If InStr(BK.Name, ComboBox1.Text) > 0 Then '找到与之相近的书签
N = N + 1 '计数
Me.ListBox1.AddItem BK.Name '并添加到列表框中
End If
Next
If N = 0 Then '如果没有找到相近的书签
For Each BK In Doc.Bookmarks '循环全部书签写入列表框中
Me.ListBox1.AddItem BK.Name
Next
End If
Else '如果是空,则清空列表框
Me.ListBox1.Clear
End If
End Sub
'----------------------
Private Sub UserForm_Initialize()
'打开指定的文档
Set Doc = Documents.Open(FileName:=ThisDocument.AttachedTemplate.Path & "\样本文档.doc", _
Visible:=False)
If Doc.Bookmarks.Count < 1 Then '如果没有书签则提示
MsgBox "未发现书签!", vbOKOnly + vbInformation
Else
For Each BK In Doc.Bookmarks
Me.ListBox1.AddItem BK.Name '在列表框中列出所有书签名
Next
End If
Me.ListBox1.ListIndex = 0 '选中第一项
End Sub
'----------------------
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
On Error Resume Next
TF = True '赋值于TF变最
'关闭指定文档
Doc.Close False
End Sub
'----------------------
cwGXTAtk.zip
(12.88 KB, 下载次数: 56)
操作说明:
将附件替换到你原来与“样本文档.DOC"同一文件夹下,打开或者新建该模板(启动.DOT),点按钮"将书签列表",出现一个窗体,其中的列表框中列出所有的指定的"样本文档.DOC"中的书签名;
你可以在上面的组合框中输入任意名称,如包含的某几个字符,然后回车,则该组合框中会自动将你的输入进行添加,如果书签中包含你的输入字符,列表框中会自动重新列表;如果没有该字符,列表框会还原成全部的书签名.
如果你需要对列表框项目进行运行时间内的排序,可以使用SORTED属性;如果你需要动态随时改变列表框中的项目,可以使用
Private Sub ComboBox1_Change()
End Sub
此事件,但我个人以为用EXIT事件也许更好。
好了,有什么问题,再交流.
[此贴子已经被作者于2005-1-18 7:09:57编辑过] |