使用列宽自动调整图像大小

时间:2017-03-08 07:48:27

标签: excel vba excel-vba

我想自动调整图像的大小,使其宽度是某个列范围的宽度,例如Excel中的A到J列。

图像是横幅图像,横跨报价页面的宽度。 我希望它的宽度随着列宽的变化而改变,所以图像的宽度总是与A列到J的宽度一致

2 个答案:

答案 0 :(得分:2)

您不需要VBA。

要使控件在单元格移动时保持单元格(例如,在排序时),并在单元格高度和宽度更改时调整控件大小,请选择移动并使用单元格调整大小

  1. 右键单击所选内容,单击“格式控制”,然后单击“属性”选项卡。

  2. 在“对象定位”下,确保选中移动并使用单元格大小

  3. 另见Position and size a control with its underlying cell on a worksheet

答案 1 :(得分:0)

不幸的是,Excel中没有Worksheet_CellSizeChange或任何其他类似的事件。但是,无论何时选择另一个单元格,都可以使用Worksheet_SelectionChange事件来自动调整图片。只需将代码粘贴到Visual Basic编辑器中的有关工作表中即可:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim myRange As Range
    Set myRange = Me.Columns("A:J")

    Application.EnableEvents = False
    If Not Intersect(Target, myRange) Is Nothing Then
        If Not Me.Pictures(1).Width = myRange.Columns.Width Then
            Me.Pictures(1).Width = myRange.Columns.Width
        End If
    End If
    Application.EnableEvents = True
End Sub