国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 辦公 > Excel > 正文

Excel VBA如何根據(jù)姓名自動插入照片

2019-10-25 20:24:03
字體:
供稿:網(wǎng)友

   一、前提條件

  在Excel的單元格中,已輸入人物的姓名,并且,在姓名的下面,留有空的單元格待插入相應(yīng)的圖片。

  如下圖一樣。比如,B1是姓名,而B3則是要根據(jù)張三這個姓名,自動將張三這個人的照片插入到B3中。其它以此類推。

Excel,如何,根據(jù),姓名,自動,插入,照片

  這得使用VBA來完成。

  同時,人物的照片所在的文件夾,和Excel工作薄,在相同的路徑,比如,下圖的位置。

  另外,每個員工的照片的名稱,都是按照員工的姓名來命名的,如下圖。

Excel,如何,根據(jù),姓名,自動,插入,照片

電腦教程

  像這樣的問題需求,是具備一定規(guī)律的,因此,能使用VBA來完成。

  二、實現(xiàn)方法

  打開你的Excel,然后執(zhí)行菜單操作:“工具”→“宏”→“宏”;彈出如下圖對話框。

Excel,如何,根據(jù),姓名,自動,插入,照片

  上圖中,宏名那里,輸入 AutoAddPic ,然后,點擊“創(chuàng)建”按鈕,彈出代碼輸入窗口,如下圖。

Excel,如何,根據(jù),姓名,自動,插入,照片

  代碼如上圖,請書寫完整,否則會發(fā)生異常。為方便大家的學(xué)習(xí),下面將代碼寫為下文,以供參考:

  '自動插入圖片前,刪除所有圖片

  For Each Shp In ActiveSheet.Shapes

  If Shp.Type = msoPicture Then Shp.Delete

  Next

  Dim MyPcName As String

  For i = 1 To ThisWorkbook.ActiveSheet.UsedRange.Rows.Count

  If (ActiveSheet.Cells(i, 1).Value = "姓名") Then

  MyPcName = ActiveSheet.Cells(i, 2).Value & ".gif"

  'MsgBox "圖片的完整路徑是" & ThisWorkbook.Path & "員工照片" & MyPcName

  ActiveSheet.Cells(i + 2, 2).Select '選擇要插入圖片的單元格作為目標(biāo)

  Dim MyFile As Object

  Set MyFile = CreateObject("Scripting.FileSystemObject")

  If MyFile.FileExists(ThisWorkbook.Path & "員工照片" & MyPcName) = False Then

  MsgBox ThisWorkbook.Path & "員工照片" & MyPcName & "圖片不存在"

  Else

  '在選定的單元格中插入圖片

  ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "員工照片" & MyPcName).Select

  End If

  End If

  Next i

  書寫完代碼以后,點擊窗口中的保存,然后關(guān)閉代碼窗口,返回Excel窗口。

  接著,執(zhí)行菜單操作:“工具”→“宏”→“宏”,彈出如下圖。

Excel,如何,根據(jù),姓名,自動,插入,照片

  選中上面所創(chuàng)建的宏名 AutoAddPic ,然后,點擊“執(zhí)行”按鈕,這樣,Excel就會根據(jù)每個姓名找到所對應(yīng)的照片,將照片插入到每一個人所對應(yīng)的相應(yīng)的單元格。

  三、知識擴(kuò)展

  ThisWorkbook.ActiveSheet.UsedRange.Rows.Count 該行代碼的含義是,獲取工作表中的有效數(shù)據(jù)的最大行。

  If (ActiveSheet.Cells(i, 1).Value = "姓名")  判定第一列中的各行,其內(nèi)容是否為“姓名”二字,是姓名就去找圖片來插入,否則就不找。

  MyPcName = ActiveSheet.Cells(i, 2).Value & ".gif" 獲取每個人的照片名稱,如 青山.gif

  ThisWorkbook.Path & "員工照片" & MyPcName 獲取每個人的照片所在的路徑,是完整的絕對路徑,而不是相對路徑。

  ActiveSheet.Cells(i + 2, 2).Select '選擇要插入圖片的單元格作為目標(biāo),即哪個單元格要插入圖片,就選中哪個

  ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "員工照片" & MyPcName).Select '在選定的單元格中插入圖片

  If MyFile.FileExists(ThisWorkbook.Path & "員工照片" & MyPcName) = False Then 判斷員工照片是否存在


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 桃源县| 鲁山县| 昌都县| 开鲁县| 都江堰市| 岳阳县| 宁陵县| 宜黄县| 安溪县| 乌拉特前旗| 久治县| 洪江市| 收藏| 逊克县| 武鸣县| 凤翔县| 高阳县| 沭阳县| 铜鼓县| 南召县| 建平县| 宝应县| 龙门县| 勐海县| 乌鲁木齐县| 都匀市| 玛纳斯县| 云霄县| 荔浦县| 湖口县| 茂名市| 赤壁市| 莆田市| 柳林县| 榆中县| 湖州市| 孟连| 汕头市| 龙海市| 双牌县| 洪湖市|