成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Excel插入批量圖片,套用這些代碼就OK

大數(shù)據(jù)
咱們今天分享的內(nèi)容是按指定名稱和位置批量將圖片插入到Excel工作表中……

以下文章來(lái)源于VBA編程學(xué)習(xí)與實(shí)踐 ,作者EH看見星光

咱們今天分享的內(nèi)容是按指定名稱和位置批量將圖片插入到Excel工作表中……

看個(gè)動(dòng)畫先:

 

Excel插入批量圖片,套用這些代碼就OK

代碼如下

  1. Sub InsertPic() 
  2.     'ExcelHome VBA編程學(xué)習(xí)與實(shí)踐 by:看見星光 
  3.     Dim Arr, i&, k&, n&, pd& 
  4.     Dim strPicName$, strPicPath$, strFdPath$, shp As Shape 
  5.     Dim Rng As Range, Cll As Range, Rg As Range, strWhere As String 
  6.     'On Error Resume Next 
  7.     '用戶選擇圖片所在的文件夾 
  8.     With Application.FileDialog(msoFileDialogFolderPicker) 
  9.        If .Show Then strFdPath = .SelectedItems(1) Else: Exit Sub 
  10.     End With 
  11.     If Right(strFdPath, 1) <> "\" Then strFdPath = strFdPath & "\" 
  12.     Set Rng = Application.InputBox("請(qǐng)選擇圖片名稱所在的單元格區(qū)域", Type:=8) 
  13.     '用戶選擇需要插入圖片的名稱所在單元格范圍 
  14.     Set Rng = Intersect(Rng.Parent.UsedRange, Rng) 
  15.     'intersect語(yǔ)句避免用戶選擇整列單元格,造成無(wú)謂運(yùn)算的情況 
  16.     If Rng Is Nothing Then MsgBox "選擇的單元格范圍不存在數(shù)據(jù)!": Exit Sub 
  17.     strWhere = InputBox("請(qǐng)輸入圖片偏移的位置,例如上1、下1、左1、右1", , "右1"
  18.     '用戶輸入圖片相對(duì)單元格的偏移位置。 
  19.     If Len(strWhere) = 0 Then Exit Sub 
  20.     x = Left(strWhere, 1) 
  21.     '偏移的方向 
  22.     If InStr("上下左右", x) = 0 Then MsgBox "你未輸入偏移方位。": Exit Sub 
  23.     y = Val(Mid(strWhere, 2)) 
  24.     '偏移的值 
  25.     Select Case x 
  26.         Case "上" 
  27.         Set Rg = Rng.Offset(-y, 0) 
  28.         Case "下" 
  29.         Set Rg = Rng.Offset(y, 0) 
  30.         Case "左" 
  31.         Set Rg = Rng.Offset(0, -y) 
  32.         Case "右" 
  33.         Set Rg = Rng.Offset(0, y) 
  34.     End Select 
  35.     Application.ScreenUpdating = False 
  36.     Rng.Parent.Select 
  37.     For Each shp In ActiveSheet.Shapes 
  38.     '如果舊圖片存放在目標(biāo)圖片存放范圍則刪除 
  39.         If Not Intersect(Rg, shp.TopLeftCell) Is Nothing Then shp.Delete 
  40.     Next 
  41.     x = Rg.Row - Rng.Row 
  42.     y = Rg.Column - Rng.Column 
  43.     '偏移的坐標(biāo) 
  44.     Arr = Array(".jpg"".jpeg"".bmp"".png"".gif"
  45.     '用數(shù)組變量記錄五種文件格式 
  46.     For Each Cll In Rng 
  47.     '遍歷選擇區(qū)域的每一個(gè)單元格 
  48.         strPicName = Cll.Text 
  49.         '圖片名稱 
  50.         If Len(strPicName) Then 
  51.         '如果單元格存在值 
  52.             strPicPath = strFdPath & strPicName 
  53.             '圖片路徑 
  54.             pd = 0 
  55.             'pd變量標(biāo)記是否找到相關(guān)圖片 
  56.             For i = 0 To UBound(Arr) 
  57.             '由于不確定用戶的圖片格式,因此遍歷圖片格式 
  58.                 If Len(Dir(strPicPath & Arr(i))) Then 
  59.                 '如果存在相關(guān)文件 
  60.                     Set shp = ActiveSheet.Shapes.AddPicture( _ 
  61.                         strPicPath & Arr(i), FalseTrue, _ 
  62.                         Cll.Offset(x, y).Left + 5, _ 
  63.                         Cll.Offset(x, y).Top + 5, _ 
  64.                         20, 20) 
  65.                     shp.Select 
  66.                     With Selection 
  67.                         .ShapeRange.LockAspectRatio = msoFalse 
  68.                         '撤銷鎖定圖片縱橫比 
  69.                         .Height = Cll.Offset(x, y).Height - 10 '圖片高度 
  70.                         .Width = Cll.Offset(x, y).Width - 10 '圖片寬度 
  71.                     End With 
  72.                     pd = 1 '標(biāo)記找到結(jié)果 
  73.                     n = n + 1 '累加找到結(jié)果的個(gè)數(shù) 
  74.                     [a1].Select: Exit For '找到結(jié)果后就可以退出文件格式循環(huán) 
  75.                 End If 
  76.             Next 
  77.             If pd = 0 Then k = k + 1 '如果沒(méi)找到圖片累加個(gè)數(shù) 
  78.         End If 
  79.     Next 
  80.     Application.ScreenUpdating = True 
  81.     MsgBox "共處理成功" & n & "個(gè)圖片,另有" & k & "個(gè)非空單元格未找到對(duì)應(yīng)的圖片。" 
  82. End Sub 

 

Excel插入批量圖片,套用這些代碼就OK

代碼已有注釋說(shuō)明,這兒就再說(shuō)明一下運(yùn)行過(guò)程。

首先,會(huì)讓用戶選擇存放圖片的文件夾。注意是選擇文件夾,不是選擇圖片;選擇文件夾后,看不到文件夾內(nèi)的圖片是正常現(xiàn)象。

 

Excel插入批量圖片,套用這些代碼就OK

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

 

Excel插入批量圖片,套用這些代碼就OK

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

 

Excel插入批量圖片,套用這些代碼就OK

小貼士:

  1. 該段小代碼支持一下圖片格式:".jpg", ".jpeg", ".bmp", ".png", ".gif"
  2. 圖片的縱橫比是未鎖定的,如需鎖定,可以注釋掉下句代碼:.ShapeRange.LockAspectRatio = msoFalse
  3. 圖片的行高和列寬是由放置圖片的單元格行高和列寬決定的。當(dāng)然,您也可以把代碼稍微修改,設(shè)置固定的圖片行高和列寬,并由圖片的行高和列寬決定單元格的大小。
  4. 圖片的名稱必須和指定單元格范圍內(nèi)的名稱一致,如果需要模糊匹配,使用DIR函數(shù)搭配通配符的方式即可。
  5. 代碼采用非引用的方式插入圖片,該方式會(huì)圖片作為excel的資源打包到excel文件中,即便數(shù)據(jù)源的圖片已被刪除,表格中的圖片也依然存在。

 

責(zé)任編輯:未麗燕 來(lái)源: 今日頭條
相關(guān)推薦

2012-06-27 11:31:24

2022-09-21 14:17:58

Umi-OCR軟件

2010-09-03 11:47:38

SQL刪除

2013-04-01 15:03:58

Android開發(fā)Android批量插入

2010-09-01 16:26:11

SQL刪除批量

2019-07-24 16:00:37

Python代碼高清圖片

2021-04-08 10:55:53

MySQL數(shù)據(jù)庫(kù)代碼

2020-09-23 09:21:56

CPUCache緩存

2013-07-04 10:50:33

騰訊移動(dòng)互聯(lián)網(wǎng)大數(shù)據(jù)

2013-09-22 10:25:23

MySQLSQL性能優(yōu)化

2020-11-23 10:50:27

MySQLSQL數(shù)據(jù)庫(kù)

2021-09-27 07:56:41

MyBatis Plu數(shù)據(jù)庫(kù)批量插入

2021-02-01 00:04:13

Dictionary數(shù)據(jù)批量

2024-10-22 08:47:03

2009-08-12 16:39:50

C#向Excel插入數(shù)

2011-08-04 18:00:47

SQLite數(shù)據(jù)庫(kù)批量數(shù)據(jù)

2022-09-29 10:06:56

SQLMySQL服務(wù)端

2015-10-10 10:10:20

2017-03-31 15:55:19

機(jī)箱板材裝機(jī)

2015-04-17 10:31:11

PHP下載美女圖片實(shí)現(xiàn)代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 成人免费网站 | 韩国av影院 | 精品欧美乱码久久久久久1区2区 | 九一在线| 久久久久久国产精品 | 91av在线免费看 | 久久久久久91 | 久久网站免费视频 | 免费中文字幕日韩欧美 | 999精品视频| 久久久免费电影 | 亚洲一区二区黄 | 久久精品 | 人人草天天草 | 精品国产欧美一区二区 | 国产成人久久精品一区二区三区 | 精品一二三区 | 亚洲精品中文字幕 | 欧美性极品xxxx做受 | 鲁一鲁资源影视 | 婷婷综合在线 | 国产精品成人一区 | 亚洲天堂一区二区 | 日韩久久在线 | 日韩一区二区av | 国产91丝袜在线播放 | 成人在线一区二区 | 久久久久久久久淑女av国产精品 | 91看片网| 午夜日韩 | 欧美激情精品久久久久久 | 午夜精品一区二区三区在线观看 | 日韩尤物视频 | 久久人爽 | 一区视频在线免费观看 | 波波电影院一区二区三区 | 久久久精 | 久久精品一区二区三区四区 | 日日欧美 | a看片| 国精产品一区二区三区 |