|
本帖最后由 x1991mm 于 2023-5-31 15:02 编辑
各位大佬:
大家好,由于工作内容比较繁琐,就想通过VBA批量制作表单,在论坛里查找批量制作表单的帖子,修改匹配自己的的模板,但是现在表单还缺最后一步,根据名称批量导入图片到表单里,一直没有找到对应的模板,找到的基本是在同一列里批量导入图片,肯请大佬们帮帮忙,非常感谢。
希望取得的效果:点击生成普通表单按钮根据录入工作表的样品编号查找图片文件夹里的照片导入到普通委托模板的样品照片页R6单元格里,照片高度15cm,照片比例不变,居中放置。
录入工作表
普通委托模板工作表
目前的代码如下
- Sub 普通委托表单生成()
- Dim i, irow As Long: Dim str, fp As String: Dim arr
- Application.DisplayAlerts = False
- Application.ScreenUpdating = False
- t = Timer
- With Application.FileDialog(msoFileDialogFolderPicker) '选择登记卡的保存位置
- .AllowMultiSelect = False
- If .Show Then
- fp = .SelectedItems(1)
- Else
- Exit Sub
- End If
- End With
- fp = fp & "\*.xls*"
- str = Dir(fp)
- With ThisWorkbook.Sheets("录入") '填写录入数据
- irow = .Cells(Rows.Count, 1).End(xlUp).Row
- arr = ThisWorkbook.Sheets("录入").Range("a4:ac" & irow)
- For i = LBound(arr) To UBound(arr)
- Sheets("普通委托模板").Copy
- ActiveSheet.Range("c4") = arr(i, 16)
- ActiveSheet.Range("g4") = arr(i, 1)
- ActiveSheet.Range("f23") = arr(i, 3)
- ActiveSheet.Range("l3") = arr(i, 1)
- ActiveSheet.Range("l4") = arr(i, 2)
- ActiveSheet.Range("n7") = arr(i, 3)
- ActiveSheet.Range("n9") = arr(i, 3)
- ActiveSheet.Range("n11") = arr(i, 3)
- ActiveSheet.Range("n13") = arr(i, 3)
- ActiveSheet.Range("n15") = arr(i, 3)
- ActiveSheet.Range("o3") = arr(i, 4)
- ActiveSheet.Range("o4") = arr(i, 4)
- ActiveSheet.Range("s3") = arr(i, 2)
- ActiveSheet.Range("s4") = arr(i, 7)
- ActiveSheet.Range("s5") = arr(i, 13)
- ActiveWorkbook.SaveAs Split(fp, "*")(0) & arr(i, 2) & "_" & arr(i, 7) & ".xls"
- ActiveWorkbook.Close
- k = k + 1
- Next i
- End With
- MsgBox "处理完毕!本次登记卡共" & k & "份。" & "用时:" & Timer - t & "秒"
- Application.DisplayAlerts = True
- Application.ScreenUpdating = True
- End Sub
复制代码
批量导入图片制作表单.zip
(1.34 MB, 下载次数: 7)
|
|