Excel工作表上的OLE对象附件 – 显示为随机字母数字string的图标标签

我通过Microsoft Access自动化Excel来创build报告。 此报告需要embedded一些批准附件。 我使用的代码是(在Access中):

If fso.FileExists(strPath) Then xlDoc.Sheets(TEMPLATE_WORKSHEET_NAME).OLEObjects.Add _ Filename:=strPath, _ Link:=False, _ DisplayAsIcon:=True, _ IconIndex:=0, _ IconLabel:=GetFileNameFromPath(strAttachment) End If 

其中strPath是文件的完整path( GetfileNameFromPath()函数只是正确返回文件名,我已经检查过)。

但是,当我打开Excel电子表格时,文件已经附加了一个字母数字string,如下所示:

随机文件名

该string似乎是随机的,即使附件是相同的,生成文档时也总是不一样。 扩展是正确的。

将OLE附件添加到Excel文档的在线资源非常粗略,因此我无法find正确的文档,我非常感谢任何帮助。

随机名称来自appdata / local / temp文件夹中的图片的临时副本。 即使指定了不同的图标,并通过IconFileName – Property提供,只要保存工作簿,Excel将用默认的图片/文件types图标replace图标(即使自定义标签将重置为图片文件名)。

如果你想自己testing它,这里是一些代码,我把图标设置为记事本++图标:

 ActiveSheet.OLEObjects.Add _ Filename:="XYZ.png", _ Link:=False, _ DisplayAsIcon:=True, _ IconIndex:=0, _ IconFileName:="..\Notepad++Portable\App\AppInfo\appicon.ico", _ IconLabel:="blablabla" 

只要不保存工作簿,图标将显示自定义的标签和图标,保存后将再次恢复为默认。