ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-11-23 14:01 | 显示全部楼层
熟悉插入图片的基本代码后,自然可以灵活修改。

TA的精华主题

TA的得分主题

发表于 2017-11-23 15:18 | 显示全部楼层
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-23 15:54 | 显示全部楼层
jiaxinl 发表于 2017-11-23 15:18
请见附件和动态图

Private Sub CommandButton1_Click()

非常感谢!!!完全符合

TA的精华主题

TA的得分主题

发表于 2023-3-24 08:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
jiaxinl 发表于 2017-11-23 15:18
请见附件和动态图

Private Sub CommandButton1_Click()

这个表怎么能把生成的内容单独工作表?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-29 18:20 , Processed in 0.030426 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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