多语言展示
当前在线:1447今日阅读:19今日分享:20

根据内容智能导入图片的vba代码

由于工作的需要,经常遇到需在excel中导入员工的照片、根据不同的内容导入不同的图片等等情况。我们经常用到的方法是首先调整图片到我们需要的尺寸,然后再粘贴到单元格的位置。不仅过程繁琐,还经常会有图片和单元格的尺寸大小不会完全协调的情况。其实,在excel中,有一种智能导入图片的方法,仅仅需要若干行代码,需要导入图片时,轻轻一点按钮,图片便能智能导入我们需要的位置,而且图片的大小根据我们单元格尺寸还会自动调整。今天,就让我们来分享一下这种智能导入图片的方法吧。以excel2010为例:
工具/原料

excel2010工作表、含有一些图片的文件夹

方法/步骤
1

我们列举一个简单的例子来说明:例如我们在A列中录入一些图片的内容,需要在B列相应的位置导入图片时,只需要点一下【插入图片】按钮,图片就会很快导入到B列中,并且图片的大小可以根据B列单元格大小调整。

2

首先,我们需要在电脑中建立一个相应的文件夹,并且此文件夹中要含有和A列名称一致的图片,为了论述的方便,我们将此文件夹和需要导入图片的excel表格均放在C盘的桌面上,当然,也可以根据需要放在其他位置。以下第二幅图是打开名称为【图片】的文件夹的情况。

3

第一步:打开要插入图片的名称为【插入图片的excel表格】的excel工作表。依次点击【开发工具】/【visual basic】/【视图】/【代码窗口】,就打开了vba的代码编辑窗口。若电脑中没有【开发工具】选项卡的可以通过下列所示的以前经验查看调出【开发工具】选项卡的方法步骤,在此不再赘述。

4

第二步:在代码编辑区录入下列代码或者复制下列代码至代码编辑区:Sub 插入图形应用()For Each shap In Sheet1.ShapesIf shap.Type <> 8 Then shap.DeleteNext shapFor Each rng In Range('a2:a7')i = ThisWorkbook.Path & '\图片\' & rng & '.png'Set rngs = Cells(rng.Row, 2)Sheet1.Shapes.AddPicture i, True, True, rngs.Left, rngs.Top, rngs.Width, rngs.HeightNextEnd Sub

5

第三步:点击【开发工具】/【表单控件】,插入一个控件,我们插入的是第一个控件,并命名为【插入图片】。右键单击此插入的控件,点击【指定宏】,将上述代码的名称【插入图形的应用】赋给此控件。

6

第四步:点击此按钮,可以看到,和A列内容所对应的图片已经导入到B列了。改变B列单元格的大小,再次点击【插入图片】的按钮。可以看到,图片已经自动以调整好尺寸的面貌再次成功导入到excel工作表的B列。

7

其实,我们的vba代码还可以使我们的工作更智能,在A列随意增添或者删除任意数量的内容,点击【插入图片】的按钮,相应的B列的图片也会随之改变。其他过程是相同的,只是改变一下第5行的代码即可,使之能够动态的计算A列非空单元格的个数即可。将vba代码改变为以下内容:

8

将A列【标志】删除,增添上【云】和【人物】,点击【插入图片】按钮,OK,相应的图片已经成功的导入!你学会了吗?赶快试一下吧。

推荐信息