|
![](https://clubstatic.excelhome.net/image/common/ico_lz.png)
楼主 |
发表于 2015-7-9 00:33
|
显示全部楼层
本帖最后由 kong12 于 2015-7-9 00:34 编辑
虽然谢谢楼主的帮助,但是该代码无法实际运行成功。我会改 代码中的 office 目录的。
我在百度知道求助,问题解决了。代码见下
**************************************************************************
http://zhidao.baidu.com/question/561654197617956764
如何在Excel中按名称指定批量插入Word文档(以插入对象方式)
问题:
我有一个Excel的Sheet1工作表,B列是文档名称,要求在E列批量插入电脑E盘下Downloads文件夹中对应名称的doc文档(以插入对象方式),怎么操作
解答:
用VBA即可,步骤如下
1、先建立一个工作薄,其需操作工作表的B列是文档名称,然后在信任中心那里启用宏;
2、按ALT+F11打开VBA,在VBA窗口的工程资源管理器那里找到Project(本excel工作薄名),右击它下面的需操作工作表,插入>模块,然后在模块操作窗口里复制以下VBA代码。
VBA代码见下
********************************************************************************************************
- Sub 批量插入WORD对象()
- Dim Ra As Range, Fn$
- '设置Ra为工作表B列1到999行单元格的数据,找到Ra后跳到B列后第3列即E列,如果记录数大于9999,则9999还要改大,请自行修改公式
- For Each Ra In Range("B2", [B9999].End(3))
- '寻找电脑E盘下Downloads文件夹中对应工作表B列数据的文件名的doc文档,请自行修改公式
- Fn = "E:\Downloads" & Ra.Text & ".doc"
- '建立If循环
- If Dir(Fn) <> "" Then
- '由文件插入对象时设置对象源位置,是否链接到文档和显示为图标及图标位置,请自行修改公式
- With ActiveSheet.OLEObjects.Add(Filename:=Fn, Link:=False, DisplayAsIcon:=True, _
- IconFileName:="E:\Downloads\wordicon.exe", _
- IconIndex:=0, IconLabel:=Ra & ".doc")
- .Left = Ra.Offset(, 3).Left
- .Top = Ra.Offset(, 3).Top
- '把行高改为与图标文件一样高,图标就不会相互重叠
- Ra.EntireRow.RowHeight = .Height
- End With
- End If
- Next
- End Sub
复制代码
***************************************************************************************************************
3、在VBA窗口的的菜单栏,工具---宏---选择---批量插入WORD对象()---执行。
===========================================================================================================================
还有更加简化的方法,把该EXCEL文件和所有doc及图标文件放在一个文件夹里,这样这个文件夹拷到任何地方和任何电脑都可使用。
VBA代码见下
***********************************************************************************
- Sub 批量插入WORD对象()
- Dim Ra As Range, Fn$, Pa$
- Pa = ThisWorkbook.Path
- For Each Ra In Range("B2", [B9999].End(3))
- Fn = Pa & "" & Ra.Text & ".doc"
- If Dir(Fn) <> "" Then
- With ActiveSheet.OLEObjects.Add(Filename:=Fn, Link:=False, DisplayAsIcon:=True, _
- IconFileName:=Pa & "\wordicon.exe", IconIndex:=0, IconLabel:=Ra & ".doc")
- .Left = Ra.Offset(, 3).Left
- .Top = Ra.Offset(, 3).Top
- Rows(Ra.Row).RowHeight = .Height
- End With
- End If
- Next
- End Sub
复制代码
************************************************************************************
这个VBA代码其实可以按名指定 批量插入所有类型的offce文档,xls ppt 等都行,就是改改后缀名 和图标即可
如果要用通配符找文件,然后自己找到满意的图标文件,并按原名给文件起名,代码见下
下两句可配任何后缀名的文件来按名指定查找
Fn = Dir(Pa & "\" & Ra.Text & ".*")
If Fn <> "" Then
下面一句按原名去掉后缀名给文件起名,要包含在 With ActiveSheet.OLEObjects.Add()语句中。
IconLabel:=Ra
|
|