ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5726|回复: 6

word 2003插入 文件,其顺序规则是什么?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-11-17 01:41 | 显示全部楼层 |阅读模式

在菜单栏 插入 文件,比如我选了10word文档插入进来了,可是这些文档好象是无序的进来,即使事先将这些文档名字改成1.doc,2.doc,3.doc....也无济于事,

具体的插入后这些文档的顺序规则是什么?

TA的精华主题

TA的得分主题

发表于 2005-11-17 06:14 | 显示全部楼层

我没有认真测试,以前曾有个网友提出类似问题,我当前就问他,你必须要让电脑知道,你的“插入次序”的依据。

文件夹中文件的排列是有很多方式的,但那只是显示方式而已,至于文件在硬盘中的实际位置,我们尚不清楚。

而程序向文档添加你所选定的文档时,所使用的代码是FOR EACH循环,只是在你所选项目集合中循环而已,不会区分“你的次序”要求,除非你把你的次序要求(规则)事先告诉程序,用VBA的方式编程,则会按照你的规则进行。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-11-17 12:19 | 显示全部楼层

为了排序方便,我通常习惯在待插入的文档名前面加上了一位或两位阿拉伯数字如1xy.doc ,2xx.doc,3xxyxx.doc....(这一步我早已经做好了不用考虑用vba了),守版主先生能否帮个忙写个vba??

还有一个问题:Word另一个功能,ms为什么不开发批量有序地将子文档加入到主控文档的功能,只能一个一个地添加?

晕呀,我要的全是这些功能。

[此贴子已经被作者于2005-11-17 12:22:02编辑过]

TA的精华主题

TA的得分主题

发表于 2005-11-17 14:27 | 显示全部楼层

以下代码供参考:

'* +++++++++++++++++++++++++++++ '* Created By I Love You_Word!@ExcelHome 2005-11-17 14:27:06 '仅测试于System: Windows NT Word: 10.0 Language: 2052 '№ 00052^The Code CopyIn [ThisDocument-ThisDocument]^' '* -----------------------------

Option Explicit Sub InsertFile() '修改WORD命令,用户在单击插入/文件时,自动运行此宏 '本程序运行于XP及其以上版本中 Dim myDialog As FileDialog, oSelect As Variant Dim myArray() As String, N As Integer, KeyArray() As Integer Dim FolderPath As String, KeyValue As Integer Dim I As Integer, J As Integer, Temp As String, TempA As String On Error Resume Next '忽略错误 With Selection If .Type <> wdSelectionIP Then Exit Sub '如果不是光标状态则退出程序 '定义一个文件选取对话框 Set myDialog = Application.FileDialog(msoFileDialogFilePicker) With myDialog .AllowMultiSelect = True '允许单选\多选\CTRL/SHIFT\CTRL+A .Filters.Clear '清除文件类型 .Filters.Add "所有WORD文档", "*.DOC" '增加为WORD文档 If .Show <> -1 Then Exit Sub '如果没有按下确定则退出程序运行 FolderPath = .InitialFileName '取得文件夹位置 For Each oSelect In .SelectedItems '在所选项目中循环 ReDim Preserve myArray(N) '扩展数组 ReDim Preserve KeyArray(N) '扩展数组 myArray(N) = oSelect '项目全路径 '取得关键字的数值,如果不包含数据,则可能为0 KeyValue = VBA.Val(VBA.Replace(oSelect, FolderPath, "")) KeyArray(N) = KeyValue N = N + 1 '累加 Next End With Set myDialog = Nothing '释放对象变量 N = N - 1 '恢复N值(数组上标) For I = 0 To N - 1 '在数组中循环取值 For J = I + 1 To N '冒泡法排序 If KeyArray(I) > KeyArray(J) Then Temp = KeyArray(J) TempA = myArray(J) KeyArray(J) = KeyArray(I) myArray(J) = myArray(I) KeyArray(I) = Temp myArray(I) = TempA End If Next J Next I Application.ScreenUpdating = False '关闭屏幕更新 For Each oSelect In myArray '在数组中循环 '向光标所在位置插入指定的文件 .InsertFile FileName:=oSelect, ConfirmConversions:=False '插入一个空白段落 .InsertParagraphAfter '插入下一页的分节符 .InsertBreak Type:=wdSectionBreakNextPage '折叠到光标结束位置 .Collapse Direction:=wdCollapseEnd Next End With Application.ScreenUpdating = True '恢复屏幕更新 End Sub '--------------------

先测试后再作交流。

qhVzpikL.zip (16.17 KB, 下载次数: 31)

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-11-17 16:47 | 显示全部楼层

两个小问题,一是插入的文档中总有少数(一般只有一个)能正常插进来了,但又在主文档中插入了一个超链。

还有个问题就是此vba给所插入的各文档中的表格套了一个格式,有时好象又没有。

[此贴子已经被作者于2005-11-17 16:55:49编辑过]

word 2003插入 文件,其顺序规则是什么?

word 2003插入 文件,其顺序规则是什么?

TA的精华主题

TA的得分主题

发表于 2005-11-18 05:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

把你运行结果的文档给我看一下,记得,这种问题附件比图片管用,当然,你可以试用CTRL+A,按下F9试一下。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-11-18 12:38 | 显示全部楼层
以下是引用守柔在2005-11-18 5:44:16的发言:

把你运行结果的文档给我看一下,记得,这种问题附件比图片管用,当然,你可以试用CTRL+A,按下F9试一下。

这个是个例 ,算了,不解决了。。谢谢守先生。
[此贴子已经被作者于2005-11-19 12:58:44编辑过]

xCREQ7oU.rar

103.82 KB, 下载次数: 21

word 2003插入 文件,其顺序规则是什么?

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-15 23:53 , Processed in 1.048897 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表