批量插入圖片,解決了我的大問題

2021-02-23 Excel之家ExcelHome

我們今天分享的內容是按指定名稱和位置批量將圖片插入到Excel工作表中……這個問題後臺提問的朋友太多了,趕緊分享了事。

看個動畫先:

代碼如下:

Sub InsertPic()

    'ExcelHome VBA編程學習與實踐 by:看見星光

    Dim Arr, i&, k&, n&, pd&

    Dim PicName$, PicPath$, FdPath$, shp As Shape

    Dim Rng As Range, Cll As Range, Rg As Range, book$

    'On Error Resume Next

    '用戶選擇圖片所在的文件夾

    With Application.FileDialog(msoFileDialogFolderPicker)

        .AllowMultiSelect = False '不允許多選

       If .Show Then FdPath = .SelectedItems(1) Else: Exit Sub

    End With

    If Right(FdPath, 1) <> "\" Then FdPath = FdPath & "\"

    Set Rng = Application.InputBox("請選擇圖片名稱所在的單元格區域", Type:=8)

    '用戶選擇需要插入圖片的名稱所在單元格範圍

    Set Rng = Intersect(Rng.Parent.UsedRange, Rng)

    'intersect語句避免用戶選擇整列單元格,造成無謂運算的情況

    If Rng Is Nothing Then MsgBox "選擇的單元格範圍不存在數據!": Exit Sub

    book = InputBox("請輸入圖片偏移的位置,例如上1、下1、左1、右1", , "右1")

    '用戶輸入圖片相對單元格的偏移位置。

    If Len(book) = 0 Then Exit Sub

    x = Left(book, 1) '偏移的方向

    If InStr("上下左右", x) = 0 Then MsgBox "你未輸入偏移方位。": Exit Sub

    y = Val(Mid(book, 2)) '偏移的尺寸

    Select Case x

        Case "上"

        Set Rg = Rng.Offset(-y, 0)

        Case "下"

        Set Rg = Rng.Offset(y, 0)

        Case "左"

        Set Rg = Rng.Offset(0, -y)

        Case "右"

        Set Rg = Rng.Offset(0, y)

    End Select

    Application.ScreenUpdating = False

    Rng.Parent.Select

    For Each shp In ActiveSheet.Shapes '如果舊圖片存放在目標圖片存放範圍則刪除

        If Not Intersect(Rg, shp.TopLeftCell) Is Nothing Then shp.Delete

    Next

    x = Rg.Row - Rng.Row: y = Rg.Column - Rng.Column

    '偏移的坐標

    Arr = Array(".jpg", ".jpeg", ".bmp", ".png", ".gif")

    '用數組變量記錄五種文件格式

    For Each Cll In Rng

    '遍歷選擇區域的每一個單元格

        PicName = Cll.Text '圖片名稱

        If Len(PicName) Then '如果單元格存在值

            PicPath = FdPath & PicName '圖片路徑

            pd = 0 'pd變量標記是否找到相關圖片

            For i = 0 To UBound(Arr)

            '由於不確定用戶的圖片格式,因此遍歷圖片格式

                If Len(Dir(PicPath & Arr(i))) Then

                '如果存在相關文件

                    ActiveSheet.Pictures.Insert(PicPath & Arr(i)).Select

                    '插入圖片並選中

                    With Selection

                        .ShapeRange.LockAspectRatio = msoFalse

                        '撤銷鎖定縱橫比

                        .Top = Cll.Offset(x, y).Top + 5

                        .Left = Cll.Offset(x, y).Left + 5

                        .Height = Cll.Offset(x, y).Height - 10 '圖片高度

                        .Width = Cll.Offset(x, y).Width - 10 '圖片寬度

                    End With

                    pd = 1 '標記找到結果

                    n = n + 1 '累加找到結果的個數

                    [a1].Select: Exit For '找到結果後就可以退出文件格式循環

                End If

            Next

            If pd = 0 Then k = k + 1 '如果沒找到圖片累加個數

        End If

    Next

    MsgBox "共處理成功" & n & "個圖片,另有" & k & "個非空單元格未找到對應的圖片。"

    Application.ScreenUpdating = True

End Sub

代碼已有注釋,這兒就再說明一下運行過程。

首先,會讓用戶選擇存放圖片的文件夾。注意是選擇文件夾,不是選擇圖片;選擇文件夾後,看不到文件夾內的圖片是正常現象。

然後,選擇圖片名稱存放的單元格區域,可以選擇整列、多列、整行或多行,比如示例動畫中的B:D列,2:2行等。。

最後,設置圖片相對於圖片名稱所在的單元格便宜的位置;比如圖片名稱在B列,圖片放在C列,那就是向右偏移1列,即右1。上下左右代表了方向,數字代表偏移的量。

代碼繼續運行,先刪除存放於放置圖片單元格範圍的原圖片圖形(如何用代碼刪除指定位置的圖形圖片?這個問題也不要在後臺提問了),然後遍歷圖片名稱,根據偏移位置插入新圖片。

代碼運行結束後會告之用戶一共成功插入了多少張圖片,以及失敗了多少張;有朋友說找不到圖片的單元格能否填充顏色作提醒,我想想覺得沒必要啊,就沒做……不要說我懶,認真臉。

小貼士:

1,該段小代碼支持一下圖片格式:

".jpg", ".jpeg", ".bmp", ".png", ".gif"

2,圖片的縱橫比是未鎖定的,如需鎖定,可以注釋掉下句代碼:

.ShapeRange.LockAspectRatio = msoFalse

3,圖片的行高和列寬是由放置圖片的單元格行高和列寬決定的。當然,您也可以把代碼稍微修改,設置固定的圖片行高和列寬,並由圖片的行高和列寬決定單元格的大小。

4,圖片的名稱必須和指定單元格範圍內的名稱一致,如果需要模糊匹配,使用DIR函數搭配通配符的方式即可。

5,還有什麼……想不起來了,就先醬紫吧,揮手致安~

嗯,以下是示例文件~.

https://pan.baidu.com/s/1ClgLjzXe0K9WOIPbxDPDhg#list/path=%2F

圖文作者:看見星光

ExcelHome雲課堂,我們的職場加油站

相關焦點

  • Excel圖片太多如何插入?這個小技巧30秒完成1000張圖片的批量插入!
    但是這裡有1000張圖片,僅是尋找產品的名字+手動插入對應圖片,一天都未必能實現。作為一名高效的Exceler,這可難不倒我們,今天我們就來學習在Excel中如何批量插入對應名稱位置的圖片。和height分別表示寬高;接著我們來調整下需要將圖片插入列的單元格寬高,跟圖片接近即可,如下:接著全選記事本的內容,選中B2單元格,按下快捷鍵「
  • Excel表格中批量插入圖片
    在excel中插入了很多動物圖片,現在需要把大象等動物圖片放進B列單元格中。
  • Word插入圖片時,3個常見問題解決技巧!【Word教程】
    、Word、PPT全套課程相信大家在使用Word插入圖片時常遇到過各式各樣的問題,看起來是個小小的麻煩或者簡單的需求,例如插入的圖片移不動、插入的圖片只顯示一部分、插入的圖片只顯示邊框等等.但往往都束手無策、耗費時間,從而不得不求助別人,最痛心的就是有時別人也解決不了。
  • Excel表格中,如何批量插入圖片?
    我們今天分享的內容是按指定名稱和位置批量將圖片插入到
  • 高效撰寫論文之Word中快速給批量圖片插入編號
    近來需要撰寫詳細設計文檔,文檔裡光圖片就100多張,打死我也不會再不會為了任務去親自手打了。要相信這種費神費時的問題一定早就被人想過了,所以一定有現成的方法。搜了大半個早上,都是教如何自動插入圖片編號,結果還是需要對著一張張圖點擊滑鼠右鍵,插入編號。這個對於我這種大規格文檔也是傻辦法,不推薦了。推薦下面這種方法:第一步:選中文檔中第一張圖片,點擊滑鼠右鍵,插入編號。
  • 批量將圖片插入到Excel工作表
    我們今天分享的內容是按指定名稱和位置批量將圖片插入到
  • 【Excel神技能】如何在Excel表格中快速批量的插入圖片?
    在Excel表格中錄入數據信息時,有時候涉及到圖片的插入。如果僅僅是一兩張,隨便怎麼玩,都是超快速度完成的。但是!如果是需要插入大量的圖,如公司員工大頭照這種,怎麼破?此時,只能採取在Excel表格中批量插入圖片的方式啦。快捷方式在哪裡?如下圖所示,Sara以6張圖片的插入為例。
  • excel中批量插入對應名稱的圖片,你用了1天,同事2分鐘就搞定了
    Hello.大家好,昨天有粉絲留言說如何在excel中批量插入圖片?他有很多張命名好的圖片,想要在excel中根據姓名在旁邊插入對應的圖片,自己一個一個做了好久,有沒有快速的方法,當然有了,今天就跟大家分享一種批量插入圖片的方法,下面就讓我們來一起操作下吧一、獲取圖片名稱首先我們需要將所有的圖片都放在一個文件夾中,在地址欄複製這個文件夾的路徑緊接著我們新建一個excel點擊數據功能組找到新建查詢選擇從文件,然後選擇從文件夾,
  • Excel批量插入圖片,並設置圖片超連結
    問題描述:有上百張店鋪的商品描述圖,需要根據圖片名稱插入Excel表格相應的位置,並為圖片設置商品詳情頁的超連結
  • 原來Excel可以這樣批量插入照片
    在製作檔案時,常常需要插入相應的照片以便管理,那你知道如何快速插入員工的照片嗎?不知道的小夥伴一定要看下去哦。
  • PPT快速批量導入、導出圖片
    圖片是製作PPT的重要元素之一,在我們製作PPT的過程中經常需要用到,今天給大家帶來PPT快速批量導入、導出圖片。
  • 三分鐘學會excel批量插入圖片
    有位朋友諮詢如何根據條件在excel表格中指定位置插入圖片這節課給大家分享插入圖片的技巧。案例分析:要求在G列輸入產品名稱後,在a~f列插入對應圖片。有可能一個名稱對應幾張照片1和2等等.Dim arr(), brr()    For Each shap In Sheet1.Shapes        If shap.Type <> 8 Then shap.Delete    Next shap    Bname = Dir(ThisWorkbook.Path & "\圖庫\" & "*.jpg") '圖片路徑
  • 如何在PPT中插入多張圖片
    在PPT中插入多張圖片,有哪些排版技巧可以參考呢?一般地,對於多圖排版,我們還是主張圖片的長寬比相同、尺寸也相同。
  • EXECL員工檔案你會做,1000員工照片批量插入對號入座呢
    我們在日常辦公過程中,基本都會有遇到建立員工檔案表的經歷,表格很簡單,但是員工的照片處理卻有一些問題。有些朋友一張一張插入,然後拖動,然後調整大小,然後……朋友如果幾十個員工還好,那麼如果有1000個怎麼辦,我們在提高工作效率的時候,如何讓檔案建立的又快又好,並且更新方便呢?下面小編就來為你解密。
  • 老闆讓我從Word中複製出1000張圖片?
    今天,我就教你兩招省時省力的方法,不管文檔中有幾張甚到幾百張圖片,你都可以快速保存下來。一、分析圖片在文檔的應用已經是十分普遍的現象了,在Word文檔中插入合適的圖片無疑會讓我們的文檔變得更美觀。先來回想一下,我們平常是如何在Word中插入圖片的?
  • 在Word中插入的圖片或大或小就是不變形
    如何在word中插入圖片只改變其大小,不變形呢?下面以圖文的形式為大家展現下,首先打開Word插入一張圖片,依次執行插入、圖片、保存即可。
  • 在Word中,如何在文檔中插入圖片?
    圖9‑1旅遊景點宣傳資料→ 解決方案1利用「圖片」功能,在文檔中插入圖片。→ 操作方法※使用「圖片」功能※步驟1        將光標定位到需要插入圖的位置。步驟2        如圖 9‑2所示,單擊「插入」選項卡→「插圖」組中的「圖片」按鈕,打開「插入圖片」對話框。
  • 11個Word圖片排版技巧,你會幾個?
    在Word中,時常需要對圖片進行排版編輯,但在操作過程中又會遇到很多問題,本期Word妹與大家分享11個常見問題的解決辦法。
  • Word圖片二三事——高手圖片排版技巧
    大小不統一,不好排版,還得調對齊,讓人一個頭兩個大。今天呢,咱們就重點來說說Word圖片兩三事兒。01  快速統一圖片大小首先是圖片統一大小。文檔插入圖片的時候,不可能每張圖片都一樣大小的。有時候也會需要統一大一點、小一點,怎麼快速統一大小呢?
  • 學會這4招,解決Excel裡80%的圖片問題!
    ❷ 在「設置圖片格式」頁面點擊【大小】,勾選【鎖定縱橫比】。