Excel表格中,如何批量插入圖片?

2021-02-24 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

圖文作者:看見星光

相關焦點

  • Excel表格中批量插入圖片
    在excel中插入了很多動物圖片,現在需要把大象等動物圖片放進B列單元格中。
  • 【Excel神技能】如何在Excel表格中快速批量的插入圖片?
    在Excel表格中錄入數據信息時,有時候涉及到圖片的插入。如果僅僅是一兩張,隨便怎麼玩,都是超快速度完成的。但是!如果是需要插入大量的圖,如公司員工大頭照這種,怎麼破?此時,只能採取在Excel表格中批量插入圖片的方式啦。快捷方式在哪裡?如下圖所示,Sara以6張圖片的插入為例。
  • Excel圖片太多如何插入?這個小技巧30秒完成1000張圖片的批量插入!
    作者:小北童鞋來源:芒種學院(ID:lazy_info)近期在後臺收到一位同學的留言「如何將1000張圖片批量導入Excel對應位置」,例如下面這張圖表,有很多產品的信息:但是這裡有1000張圖片,僅是尋找產品的名字+手動插入對應圖片,一天都未必能實現。作為一名高效的Exceler,這可難不倒我們,今天我們就來學習在Excel中如何批量插入對應名稱位置的圖片。
  • excel中批量插入對應名稱的圖片,你用了1天,同事2分鐘就搞定了
    Hello.大家好,昨天有粉絲留言說如何在excel中批量插入圖片?他有很多張命名好的圖片,想要在excel中根據姓名在旁邊插入對應的圖片,自己一個一個做了好久,有沒有快速的方法,當然有了,今天就跟大家分享一種批量插入圖片的方法,下面就讓我們來一起操作下吧一、獲取圖片名稱首先我們需要將所有的圖片都放在一個文件夾中,在地址欄複製這個文件夾的路徑緊接著我們新建一個excel點擊數據功能組找到新建查詢選擇從文件,然後選擇從文件夾,
  • 如何在word中插入excel文件表格
    然後再新建一個word文檔,在需要插入表格的地方,選擇菜單:【插入(I)】-->【對象(O)...】-->出現對象對話框後,選擇第二頁【由文件創建(F)】-->【文件名(N)】的右邊有【瀏覽(B)】,你可以從瀏覽找到你的excel文件,如果這裡你點確定,直接excel文件裡的內容就加到word裡了,不過!!
  • 三分鐘學會excel批量插入圖片
    有位朋友諮詢如何根據條件在excel表格中指定位置插入圖片。這節課給大家分享插入圖片的技巧。案例分析:要求在G列輸入產品名稱後,在a~f列插入對應圖片。有可能一個名稱對應幾張照片1和2等等.        If rg.Value <> "" Then '如果單元格不為空,則做循環        a = 0        For i = 1 To UBound(arr)  '對每個圖片名做循環            If arr(i) Like rg.Value & "*" Then   '如果單元格的值在圖片名的數組中能夠找到類似的
  • 【Excel技巧】Excel中如何批量刪除超連結
    如果想刪除Excel中某個單元格裡包含的超連結,只要在該單元格上點擊右鍵,在彈出菜單中選擇「取消超連結」即可。如果超連結少還可以這麼一個一個手動清除,但如果包含有超連結的單元格多了則需要考慮批量刪除的方法了。
  • 在Excel中插入圖片,竟然有這麼多玩法?!
    在表格中插入圖片是我們經常遇到的,那你知道如何操作才能使你的圖片固定到表格裡嗎?如何快速連結到圖片?
  • Excel表格中圖片的插入與編輯
    插入圖片很多人就會說,這麼簡單,誰不會呀!這個確實簡單,但是把插入的圖片做的精細,還是有很多細節需要學習的。
  • 原來Excel可以這樣批量插入照片
    在製作檔案時,常常需要插入相應的照片以便管理,那你知道如何快速插入員工的照片嗎?不知道的小夥伴一定要看下去哦。
  • 在EXCEL中如何快速插入圖片
    前言今天研究一下如何快速在EXCEL中插入相應的圖片!根據項目的名稱,插入項目的圖片,還可以應用在其它場景,如產品名錄,員工記錄、設備清單等等,如果條目較少,可以手動操作,但是如果有上百條記錄的話,建議靜下心來,好好看看下面的文章,希望對你有所啟示!
  • Excel批量插入圖片,並設置圖片超連結
    問題描述:有上百張店鋪的商品描述圖,需要根據圖片名稱插入Excel表格相應的位置,並為圖片設置商品詳情頁的超連結
  • 「救命,Word中如何插入excel表格?」別急,方法來了
    作者:佚名   來源:我的Excel小技巧(id:word_excel_ppt)在編輯Word文檔的過程中,有時需要插入大量的表格,但Word 畢竟是處理文字的軟體,在表格數據的處理上,功能還是不如Excel。
  • 批量將圖片插入到Excel工作表
    我們今天分享的內容是按指定名稱和位置批量將圖片插入到
  • 高效撰寫論文之Word中快速給批量圖片插入編號
    搜了大半個早上,都是教如何自動插入圖片編號,結果還是需要對著一張張圖點擊滑鼠右鍵,插入編號。這個對於我這種大規格文檔也是傻辦法,不推薦了。推薦下面這種方法:第一步:選中文檔中第一張圖片,點擊滑鼠右鍵,插入編號。
  • 1秒,插入100個Excel空表格
    插入那麼多空表幹嘛? 在實際工作中,還真的會經常遇到,比如做日報表、有N個門店、子公司,你都需要插入很多Excel表格。大部分人都是一個個點擊插入的。可你知道批量插入表格的技巧嗎?就在今早,筆者無意中發現一個批量插入空表的神技巧:(比如插入100個)設置:文件 - Excel選項 - 常規 - 包含工作表數量:100
  • 在Word中,如何在文檔中插入圖片?
    如何在文檔中插入圖片如圖 9‑1所示為某旅遊開發公司宣傳部門製作的旅遊景點宣傳資料,宣傳資料製作者想除了通過文字描述景點外,還想在宣傳資料中放一些景點圖片,應該如何操作?步驟2        如圖 9‑2所示,單擊「插入」選項卡→「插圖」組中的「圖片」按鈕,打開「插入圖片」對話框。
  • 如何把EXCEL的表格完整的粘貼到WORD文件中
    回歸正題今天雷哥跟大家分享下如何把Excel文檔直接插入到Word中~step1:單擊【插入】選項卡【文本】組中的【對象】按鈕;step2:在彈出的【對象】對話框中,點擊【由文件創建】選項卡中的【瀏覽】按鈕,選擇需要導入的excel文檔;
  • 說真的,在Excel中插入圖片,這些技巧你要會
    在Excel中,經常需要添加圖片,那你添加的方式用對了嗎?本期技巧妹與大家分享有關在Excel中插入圖片的技巧。
  • 如何在CAD中插入excel表格
    關注CAD製圖有問必答有時我們需要在AutoCAD裡面插入一些表格,而且很多情況下這些表格已經用Excel做完了,這時我們的心情是這樣的:這樣數據連結就創建好了,接下來就是要把創建好的數據連結插入到AutoCAD。輸入TABLE命令,彈出插入表格的對話框,插入選項裡面選擇自數據連結,點擊啟動「數據連結管理器」的對話框的按鈕。