ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何添加代码移动文件到指定目录(如果指定目录中已经存在同名文件,则直接覆盖)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-4-28 09:24 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 dzsrmyh 于 2023-4-28 10:25 编辑
  1. Option Explicit
  2. Sub PrintInvoice()
  3.     Dim vFile As Variant, sPath As String, sPDF As String, nI As Integer
  4.     Dim acroApp As Acrobat.acroApp
  5.     Dim acroAVDoc As Acrobat.acroAVDoc
  6.     Dim acroPDDoc As Acrobat.acroPDDoc
  7.     Dim oJSO As Object
  8.     Dim yy, mm, fso As Object
  9.     Application.ScreenUpdating = False
  10.     Application.DisplayAlerts = False
  11.     vFile = Application.GetOpenFilename("PDF 文件,*.pdf")
  12.     If vFile = False Then Exit Sub
  13.     sPath = vFile
  14.     vFile = Split(sPath, "")
  15.     sPath = Left(sPath, Len(sPath) - Len(vFile(UBound(vFile))))
  16.     sPDF = Dir(sPath & "*.pdf")
  17.     ReDim vFile(1 To 1)
  18.     Do While sPDF <> ""
  19.         nI = nI + 1
  20.         ReDim Preserve vFile(1 To nI)
  21.         vFile(nI) = sPDF
  22.         sPDF = Dir
  23.     Loop
  24.     If nI = 0 Then Exit Sub
  25.     Set acroApp = CreateObject("AcroExch.App")
  26.     Set acroAVDoc = CreateObject("AcroExch.AVDoc")
  27.     For nI = 1 To UBound(vFile)
  28.         If acroAVDoc.Open(sPath & vFile(nI), "文档转换") Then
  29.             Set acroPDDoc = acroAVDoc.GetPDDoc()
  30.             Set oJSO = acroPDDoc.GetJSObject
  31.             oJSO.SaveAs sPath & "发票.jpg", "com.adobe.acrobat.jpeg"
  32.             acroApp.CloseAllDocs
  33.             PrintPic sPath & "发票.jpg"
  34.         End If
  35.     Next
  36.     acroApp.Exit
  37.     Set oJSO = Nothing
  38.     Set acroPDDoc = Nothing
  39.     Set acroAVDoc = Nothing
  40.     Set acroApp = Nothing
  41.     If Dir(sPath & "发票.jpg") <> "" Then Kill sPath & "发票.jpg"
  42.     Application.DisplayAlerts = True
  43.     Application.ScreenUpdating = True
  44.     Dim old_path$, new_path$, ext$, fold2, f
  45.     Set fso = CreateObject("Scripting.FileSystemObject")
  46.     yy = Year(Date)
  47.     mm = Month(Date)
  48.     <font color="#ff0000">old_path = "d:\桌面"
  49.     If Dir(old_path, vbDirectory) = "" Then MkDir old_path
  50.     fold2 = old_path & yy & "年"
  51.     If Dir(fold2, vbDirectory) = "" Then MkDir fold2
  52.     new_path = fold2 & mm & "月"
  53.     If Dir(new_path, vbDirectory) = "" Then MkDir new_path
  54.     ext = "pdf*"
  55.     With fso
  56.         For Each f In .getfolder(sPath).Files
  57.             If .getextensionname(f.Name) Like ext Then
  58.                 If Not .fileexists(new_path & f.Name) Then      '如何添加代码移动文件到指定目录(如果指定目录中已经存在同名文件)直接覆盖
  59.                     .Movefile f, new_path & ""</font>
  60.                 Else
  61.                     'MsgBox "移动失败,目标文件夹已存在该文件" & f.Name
  62.                 End If
  63.             End If
  64.         Next
  65.     End With
  66.     MsgBox "打印结束!"
  67. End Sub
  68. Private Sub PrintPic(ByVal sPicFile As String)
  69.     Dim oPicture As Object, nTop As Double, nLeft As Double
  70.     With ActiveSheet
  71.         nTop = .[B1].Top
  72.         nLeft = .[B1].Left
  73.         For Each oPicture In .Shapes
  74.             If oPicture.Name <> "CommandButton1" Then oPicture.Delete
  75.         Next oPicture
  76.         Set oPicture = .Pictures.Insert(sPicFile)
  77.         With oPicture
  78.             .Name = "Invoice_IMG"
  79.             .Top = nTop
  80.             .Left = nLeft
  81.         End With
  82.         .PrintOut
  83.         oPicture.Delete
  84.     End With
  85. End Sub
复制代码
如何添加代码移动文件到指定目录(如果指定目录中已经存在同名文件,则直接覆盖)

批量打印PDF文件电子发票3-27.rar

223.02 KB, 下载次数: 5

TA的精华主题

TA的得分主题

发表于 2023-4-28 12:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
https://club.excelhome.net/threa ... tml?_dsign=73cffde5
参考下资料吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-28 14:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
liulang0808 发表于 2023-4-28 12:53
https://club.excelhome.net/thread-1258425-1-1.html?_dsign=73cffde5
参考下资料吧

一头雾水?能请版主添加一下代码吗?谢谢了

TA的精华主题

TA的得分主题

发表于 2023-4-28 16:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
dzsrmyh 发表于 2023-4-28 14:50
一头雾水?能请版主添加一下代码吗?谢谢了

https://club.excelhome.net/forum ... 170&pid=8004937

TA的精华主题

TA的得分主题

发表于 2023-4-28 16:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
移动文件的代码论坛很多,回过的帖子也很多,自己搜搜看看,
要在你目前的这么多的代码中添加几乎是不可能的,因为,得看懂你的每一句代码才行,而要看懂你的每一句代码不容易
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 05:21 , Processed in 0.032538 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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