本技术资料版权所有,禁止分发.©(2003-2007),重庆软航科技有限公司,保留所有权利.NTKO和软航是软航科技的商标

NTKO OFFICE文档控件技术资料

通过VBA嵌入一个URL文档的解决办法


创建时间:06/02/2010 11:45:14 AM 修改时间: 10/31/2011 05:45:54 PM
分类:BS开发-常见问题, BS开发-开发技巧
适应版本号:4,0,6,X; 4,0,1,X; 3,0,0,x

相关文档:本文档没有相关文档

因为OFFICE本身安全机制原因,只能通过插入菜单插入一个URL的文档,调用AddOLEObject方法不能指定FileName直接调用URL地址

出错信息如图:


解决方案1:
将URL文档保存到本机临时文件,在OFFICE中插入临时文件,最后删除产生的临时文件
Sub InsertObj()

Const adModeRead = 1
Const adOpenIfExists = 33554432
Const adOpenStreamFromRecord = 4
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2

Dim oRec 'ADODB.Record
Dim oStm 'ADODB.Stream

Set oRec = CreateObject("ADODB.Record")
Set oStm = CreateObject("ADODB.Stream")

'从URL读取文档
oRec.Open "aaaa.xls", "URL=http://localhost:81/document/upload/", adModeRead, adOpenIfExists

' 读取URL文档数据流
oStm.Type = adTypeBinary
oStm.Open oRec, adModeRead, adOpenStreamFromRecord
oStm.SaveToFile "C:\a.xls", adSaveCreateOverWrite
oStm.Close
oRec.Close
Set oStm = Nothing
Set oRec = Nothing

'拷贝到插入对象
Selection.InlineShapes.AddOLEObject ClassType:="Package", FileName:= _
"C:\a.xls", LinkToFile:=False, DisplayAsIcon:=False
Kill "C:\a.xls"

End Sub


返回页面顶部↑  
本文档的相关文档:
本文档没有相关文档