将OLEObject显示为默认图标

时间:2014-07-01 20:11:43

标签: excel vba excel-vba ole

我试图显示当前其他Excel文件的链接。我能够将其显示为自定义图标,指定图标的路径,但如果可能,我希望显示为默认的Excel图标,因此我不必将此图标文件发送给用户。 / p>


v_sheet.OLEObjects.Add Filename:=v_fileNameToImport, Link:=True, DisplayAsIcon:=True, _
Top:=40, Left:=40, Width:=100, Height:=100, IconLabel:=v_regions(j), IconFileName:=v_iconFile, IconIndex:=0

documentation说:

  

IconFileName 可选

     

一个字符串,指定包含图标的文件   显示。仅当DisplayAsIcon为True时才使用此参数。如果   没有指定此参数或文件不包含图标,   使用OLE类的默认图标。

但在我的情况下,这并没有奏效。如果我没有指定图标,则它显示为空白矩形。如何显示此默认图标?

1 个答案:

答案 0 :(得分:2)

您似乎总是必须指定图标路径。我已经录制了一个宏并通过UI添加,这就是我得到的内容:

Sub Macro1()
'
' Macro1 Macro
'
    Workbooks.Open Filename:= _
        "C:\Path\FileToAdd.xls"
    ActiveWindow.Visible = False
    ActiveSheet.OLEObjects.Add(Filename:= _
        "C:\Path\FileToAdd.xls.xls" _
        , Link:=True, DisplayAsIcon:=True, IconFileName:= _
        "C:\windows\Installer\{90140000-0011-0000-0000-0000000FF1CE}\xlicons.exe", _
        IconIndex:=0, IconLabel:= _
        "C:\Path\FileToAdd.xls" _
        ).Select
    Range("G8").Select
End Sub

我发现你可能只是这样做:

IconFileName:= "excel.exe"

它适用于我的和其他计算机。