嗨,您好!尝试用有意义的图片晃动仪表板。或者只是尝试将图片插入单元格Excel VBA中。好吧,您不能将图片插入excel单元格,但可以调整其大小以适合excel单元格。

手动执行将花费大量时间,并且很烦人。那么解决方案是什么?您猜对了,VBA宏。我们现在将进行编码。

下面是excel vba代码,用于将文件夹中的图片插入单元格或给定范围。按Alt + F11,插入一个模块并复制此代码。

不用担心,我已经在下面进行了解释,以便您可以根据需要进行修改。

将带有VBA的Excel单元格中的图片插入到单元格或给定范围内[width =“ 100%”,cols =“ 100%”,]

Sub TestInsertPictureInRange()InsertPictureInRange

“C:\FolderName\PictureFileName.gif”, _Range(“B5:D10”)

End Sub

Sub InsertPictureInRange(PictureFileName As String, TargetCells As

Range)

‘ inserts a picture and resizes it to fit the TargetCells range

Dim p As Object, t As Double, l As Double, w As Double, h As Double

If TypeName(ActiveSheet) <> “Worksheet” Then Exit Sub

If Dir(PictureFileName) = “” Then Exit Sub

‘ import picture

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

‘ determine positions

With TargetCells

t = .Top

l = .Left

w = .Offset(0, .Columns.Count).Left – .Left

h = .Offset(.Rows.Count, 0).Top – .Top

End With

‘ position picture

With p

Height = h

End With

Set p = Nothing

End Sub

说明:

第1部分:

Sub TestInsertPictureInRange()InsertPictureInRange

“C:\FolderName\PictureFileName.gif”, _Range(“B5:D10”)

End Sub

上面的子例程仅调用我们的主子例程InsertPictureInRange,该子例程仅接受两个参数。首先是图像文件的地址及其名称,然后是要在Excel中插入图片的范围。

第2部分:

Sub InsertPictureInRange(PictureFileName As String, TargetCells As

Range)’ inserts a picture and resizes it to fit the TargetCells rangeDim

p As Object, t As Double, l As Double, w As Double, h As Double

If TypeName(ActiveSheet) <> “Worksheet” Then Exit Sub

If Dir(PictureFileName) = “” Then Exit Sub

‘ import picture

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

‘ determine positions

With TargetCells

t = .Top

l = .Left

w = .Offset(0, .Columns.Count).Left – .Left

h = .Offset(.Rows.Count, 0).Top – .Top

End With

‘ position picture

With p

Height = h

End With

Set p = Nothing

End Sub

这是插入子程序并调整其​​大小以适合给定范围的主要子例程。让我们深入研究。

Dim p As Object, t As Double, l As Double, w As Double, h As Double

这行只是我们需要的变量声明。注释p作为对象变量。这个变量将保存我们的图片。

If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub

它检查Activesheet是否为工作表。如果没有,它将立即退出代码,并且不会发生任何事情。

If Dir(PictureFileName) = "" Then Exit Sub

检查是否已提供图像的地址,以将照片插入excel单元格。如果您没有提供,它将立即退出,并且不会发生任何事情。

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

现在,这是最重要的一行。在这一行中,我们使用Activesheet的Insert函数。图片对象并将其放入我们先前声明的对象p中。现在,使用p可以轻松调整图像的宽度和长度。

With TargetCells

t = .Top

l = .Left

w = .Offset(0, .Columns.Count).Left - .Left

h = .Offset(.Rows.Count, 0).Top - .Top

End With

该段仅从给定范围获得“长度”,“宽度”,“顶部”和“左侧”。

With p

.Top = t

.Left = l

.Width = w

Height = h

End With

此部分将图像调整到给定范围。完成了。最后,我们通过将其设置为空来将其自由设置。

Set p = Nothing

这条线释放了记忆。

此代码将在Excel 2016,Excel 2013,Excel 2010和Excel 2007中运行。在这里,我想将图像插入A1:C10范围内。为此,我在[width =“ 100%”,cols =“ 100%”,]

|下修改了我的代码

这就是我得到的。正是我想要的。

Sub TestInsertPictureInRange()InsertPictureInRange “*C:\Users\Manish

Singh\Downloads\biker.jpg”, _Range(“A1:C10*”)

End Sub

嗯是的。使用此代码将图片插入excel单元格或范围。播放代码。尝试插入不同的格式,奇怪的范围,然后看看会发生什么。如果您有任何疑问或面临任何挑战,请使用以下评论部分问我。

pasted image 0 (1)

下载文件

`链接:/ wp-content-uploads-2013-07-Insert-Pictures-使用VBA-In-Microsoft-Excel-2016.xls [__在Microsoft Excel 2016中使用VBA插入图片]

热门文章:

link:/ formulas-and-functions-vlookup-function简介[如何在Excel中使用VLOOKUP函数]