ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4196|回复: 13

[求助] 证件卡等中如何批量导入照片

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-11-22 21:11 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
     请教各位大侠如何通过公式或者VB实现按照对应的身份证号,导入 照片 目录下  "身份照.jpg" 图片到E、K 位置上,并根据单元格的大小自动调整图片大小。
直接上附件!!!
电子档案.rar (22.06 KB, 下载次数: 18)
大神们帮我弄弄谢谢了!
如果是VB最好能给解释下 语句的意思哈 便于学习

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-11-23 12:34 | 显示全部楼层
本帖最后由 249011132 于 2017-11-23 12:57 编辑

我在单元格 O4 中加入公式对花名册B列计数(=COUNTA(在校生花名册!$B$5:$B$99999))
然后 对变量  For i = 1 To 20  赋值,这个20 改成 固定值即单元格O4的值,如何调整?  解决了  For i = 1 To Range("o" & 4).Value
现在还有个问题 如何批量删除已经插入的图片呢???

TA的精华主题

TA的得分主题

发表于 2017-11-23 15:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
249011132 发表于 2017-11-23 12:34
我在单元格 O4 中加入公式对花名册B列计数(=COUNTA(在校生花名册!$B$5:$B$99999))
然后 对变量  For i = ...

请见附件和动态图

Private Sub CommandButton1_Click()
With CommandButton1
   If .Caption = "清除" Then
      Call 清除
      .Caption = "批量处理"
      .BackColor = &H80FF&
      .Width = 87
      .Height = 25.5
      .Left = 670
      .Top = 6
      Exit Sub
   End If
   If .Caption = "批量处理" Then
      Call 批量处理
      .Caption = "清除"
      .BackColor = &HFF00&
      .Width = 87
      .Height = 25.5
      .Left = 670
      .Top = 6
      Exit Sub
   End If
End With
End Sub


Sub 批量处理()
Dim FSO, arr, Pic As Picture, shp As Shape, sPath$, sFilePath$, i&, k&
Application.ScreenUpdating = False
arr = Sheet3.Range("A5:P" & Sheet3.Cells(Rows.Count, 1).End(xlUp).Row)
For Each shp In Sheet2.Shapes
   If shp.Type <> 12 Then shp.Delete
Next
Set FSO = CreateObject("Scripting.FileSystemObject")
sPath = ThisWorkbook.Path & "\照片\"
With Sheet2
   For i = 2 To UBound(arr) Step 2
      k = i / 2
      Sheet4.Rows("1:4").Copy .Rows(k * 5 - 4)
      For j = i - 1 To i
         If j = i - 1 Then c1 = 2: c2 = 4: c3 = 5 Else c1 = 8: c2 = 10: c3 = 11
         .Cells(k * 5 - 4, c1) = arr(j, 1)
         .Cells(k * 5 - 4, c2) = arr(j, 2)
         .Cells(k * 5 - 3, c1) = arr(j, 3)
         .Cells(k * 5 - 3, c2) = arr(j, 7)
         .Cells(k * 5 - 2, c1) = arr(j, 15)
         .Cells(k * 5 - 2, c2) = arr(j, 9)
         .Cells(k * 5 - 1, c1) = arr(j, 6) & Chr(13)
         .Cells(k * 5 - 1, c2) = arr(j, 10)
         sFilePath = sPath & arr(j, 6) & ".jpg"
         If FSO.FileExists(sFilePath) Then
            Set Pic = .Pictures.Insert(sFilePath)
            With Pic
               .Placement = xlMoveAndSize
               .ShapeRange.LockAspectRatio = msoFalse
               .Width = Sheet2.Cells(k * 5 - 4, c3).MergeArea.Width - 4
               .Height = Sheet2.Cells(k * 5 - 4, c3).MergeArea.Height - 4
               .Top = Sheet2.Cells(k * 5 - 4, c3).MergeArea.Top + 2
               .Left = Sheet2.Cells(k * 5 - 4, c3).MergeArea.Left + 2
            End With
         End If
      Next j
  Next i
End With
End Sub

Sub 清除()
Dim shp As Shape
With Sheet2
   For Each shp In .Shapes
      If shp.Type <> 12 Then shp.Delete
   Next
   .Columns("A:K").Clear
   .Rows("1:" & .Rows.Count).RowHeight = 17
End With
End Sub


电子档案模板.gif

电子档案---.zip

37.72 KB, 下载次数: 85

评分

1

查看全部评分

头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2017-11-22 21:58 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-11-23 09:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
朱荣兴 发表于 2017-11-22 21:58
我的主题中就有这种贴子,自己搜搜看看

10几页的记录看完了 没找到。。。

TA的精华主题

TA的得分主题

发表于 2017-11-23 10:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你设置那张“电子档案”的目的是什么?是打印裁剪得到每个同学的小卡片;打印所有的卡片用于存档;仅当显示每个人的小卡片?

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-11-23 10:56 | 显示全部楼层
szqhb 发表于 2017-11-23 10:18
你设置那张“电子档案”的目的是什么?是打印裁剪得到每个同学的小卡片;打印所有的卡片用于存档;仅当显示 ...

是的,就是这样子

TA的精华主题

TA的得分主题

发表于 2017-11-23 11:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 szqhb 于 2017-11-23 11:34 编辑

仅仅要打印存档(或者裁剪小卡片)的话,可以用Word的邮件合并来实现。有空帮你弄一个。函数或者VBA不熟。

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-11-23 11:43 | 显示全部楼层
szqhb 发表于 2017-11-23 11:32
仅仅要打印存档(或者裁剪小卡片)的话,可以用Word的邮件合并来实现。有空帮你弄一个。函数或者VBA不熟。

邮件合并我熟悉,我现在想借助这个 对VB学习下,谢谢了

TA的精华主题

TA的得分主题

发表于 2017-11-23 11:45 | 显示全部楼层
电子档案22.zip (35.67 KB, 下载次数: 26)

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-11-23 12:26 | 显示全部楼层

测试了 很好用,但是问题来了,我这个表格数据条目不一定 有的有1000+有的只有100+  
我现在应该如何处理呢  能否实现 按照 在校生花名册 中的数据行数 来自动插入到电子档案中对应的数据呢?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 05:44 , Processed in 0.037820 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表