Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel宏调整-要在特定点插入图片吗_Vba_Excel - Fatal编程技术网

Vba Excel宏调整-要在特定点插入图片吗

Vba Excel宏调整-要在特定点插入图片吗,vba,excel,Vba,Excel,此代码通过在单元格中输入图片名称,将图片从特定文件夹插入到我的excel工作表中。例如,如果我要在单元格J4中输入a1.jpg,那么我将从文件夹中获得所需图像的输出,输出到位于J4右侧一个空格的单元格中 我所面临的困境是,我的excel模板有各种大小的单元格,我试图将图片放置在特定的位置,但却遇到了困难。这是因为当前代码逐单元格移动图片,因此如果单元格太长,图片将移动整个单元格长度。我想知道这是否可以改变,使图像可以直接放置在某一点,而不是由细胞指定 密码归于口袋妖怪 代码如下: Pri

此代码通过在单元格中输入图片名称,将图片从特定文件夹插入到我的excel工作表中。例如,如果我要在单元格J4中输入a1.jpg,那么我将从文件夹中获得所需图像的输出,输出到位于J4右侧一个空格的单元格中

我所面临的困境是,我的excel模板有各种大小的单元格,我试图将图片放置在特定的位置,但却遇到了困难。这是因为当前代码逐单元格移动图片,因此如果单元格太长,图片将移动整个单元格长度。我想知道这是否可以改变,使图像可以直接放置在某一点,而不是由细胞指定

密码归于口袋妖怪

代码如下:

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim imagePath, fileName, fullImagePath, newImageLoc As String

        imagePath = "C:\YourFileLocationPath\"
        If Target.Address = "$J$4" Then 
            fullImagePath = imagePath & Target.Value
            newImageLoc = Target.Offset(, 1).Address 

            With ActiveSheet.Pictures.Insert(fullImagePath)
                .Left = ActiveSheet.Range(newImageLoc).Left
                .Top = ActiveSheet.Range(newImageLoc).Top
                .Placement = 1
                .PrintObject = True
            End With
            End
        End If
    End Sub
尝试:


您可以使用固定值而不是(例如)
ActiveSheet.Range(newImageLoc).Left
,或者通过从这些坐标中添加/减去数量来调整位置。谢谢!如果我想从中间而不是左上角移动图像,怎么样?
 .Left = Target.Left + Target.Width / 2
 .Top = Target.Top + Target.Height / 2