如何使用Excel VBA插入图片
嗨,您好!尝试用有意义的图片晃动仪表板。或者只是尝试将图片插入单元格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单元格或范围。播放代码。尝试插入不同的格式,奇怪的范围,然后看看会发生什么。如果您有任何疑问或面临任何挑战,请使用以下评论部分问我。
下载文件
`链接:/ 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函数]