【问题标题】:How to position image in a cell range using Excel VBA?如何使用 Excel VBA 在单元格范围内定位图像?
【发布时间】:2023-01-20 04:52:11
【问题描述】:

我正在尝试在某个单元格范围内移动图像。

我下载它并将其添加到我指定的 Excel 工作表中。
图片看起来像这样:https://imgur.com/GteP0pM

我想调整图像大小以适应以下范围:

Set r = ws.Range("C17:O34")

看起来像这样:https://imgur.com/rddltWk

如果需要,可以手动调整图像大小,但我需要在该单元格范围内。

要选择我尝试过的图像:

Sub selectImage12()
    Worksheets("T-tilbud").Shapes.Range(Array("Picture 12")).Select
End Sub

要将其移动到指定的单元格,我尝试了:

Set r = ws.Range by following this example:

Dim r As Range
Dim ws As Worksheet

Dim imagePath As String
Dim img As Picture

Set ws = Worksheets("CheckListIndustrialisation")
Set r = ws.Range("A1:D4")
imagePath = "C:\myImage.jpg"
Set img = ws.Pictures.Insert(imagePath)

With img
    .ShapeRange.LockAspectRatio = msoFalse
    .Top = r.Top
    .Left = r.Left
    .Width = r.Width
    .Height = r.Height
End With

【问题讨论】:

    标签: excel vba image


    【解决方案1】:

    如果您想将您在示例中指定的代码应用到选择的“图片 12”,那么您可以使用这个新示例:

    Sub selectImage12()
        Dim r As Range
        Dim ws As Worksheet
        Dim img As ShapeRange
    
        Set ws = Worksheets("T-tilbud")
        Set r = ws.Range("A1:D4")
        
        Set img = ws.Shapes.Range(Array("Picture 12"))
    
        With img
            .LockAspectRatio = msoFalse
            .Top = r.Top
            .Left = r.Left
            .Width = r.Width
            .Height = r.Height
        End With
    End Sub
    

    【讨论】:

    • 非常感谢瓦西里!它帮助了很多。显然我错过的是它是一个 ShapeRange 而不仅仅是我在试用中声明的 Shape。最好的问候,丹尼尔
    猜你喜欢
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多