首页 > 解决方案 > 如何在 VBA 中格式化 OLEObject?

问题描述

我有一个用于将附件插入到某个列并调​​整其大小以使其完美填充单元格的代码。我现在唯一的问题是该对象只是一个空白矩形,如果单元格中甚至有任何东西都很难发现。

我已经尝试过IconLabel:=Range("A" & ActiveCell.Row)让它显示该行的 ID #,但它似乎显示它非常伸展,以至于你什么都看不到。

Sub Macro1()
    Range("X" & ActiveCell.Row).Select

    Dim vFile As Variant, Sh As Object
    vFile = Application.GetOpenFilename("All Files,*.*", Title:="Find file to insert")
    If vFile = False Then Exit Sub

    Dim OleObj As OLEObject
    Set OleObj = ActiveSheet.OLEObjects.Add(Filename:=vFile, Link:=False, DisplayAsIcon:=True, IconFileName:= _
        "C:\WINDOWS\Installer\{90110409-6000-11D3-8CFE-0150048383C9}\xlicons.exe", _
        IconIndex:=0, IconLabel:=Range("A" & ActiveCell.Row).Value)
    OleObj.ShapeRange.LockAspectRatio = msoFalse
    OleObj.Height = Range("X" & ActiveCell.Row).Height
    OleObj.Width = Range("X" & ActiveCell.Row).Width
End Sub

标签: excelvba

解决方案


这将使单元格变为红色,因为vbRed,此外,它将比标准单元格少 4 倍:

With OleObj
    .ShapeRange.LockAspectRatio = msoFalse
    .Height = Range("X" & ActiveCell.Row).Height / 2
    .Width = Range("X" & ActiveCell.Row).Width / 2
    .Interior.Color = vbRed
End With

因此,它将是不同的和可见的。这些是来自 VBA 库(按)的其他内置颜色F2

在此处输入图像描述


推荐阅读