我一直致力于为我的工作自动化报告的流程。我想要处理的最后一点是了解是否可以关闭由另一台用户在另一台计算机上打开的pdf文件(尽管在同一网络上)。我已经使用了教程并编写了以下宏和函数来成功测试文件是否打开,但是,我现在想知道是否可以从不同的远程位置实际关闭文件。
有没有人对如何做到这一点有任何建议,或者是否有可能。我已经看到了类似的关闭excel文档的项目,但没有看到pdf文档。
'function to determine if file is open
Function IsFileOpen(FileName As String)
Dim ff As Long, ErrNo As Long
On Error Resume Next
ff = FreeFile()
Open FileName For Input Lock Read As #ff
Close ff
ErrNo = Err
On Error GoTo 0
'select case depending on if file is open or not
Select Case ErrNo
Case 0: IsFileOpen = False
Case 70: IsFileOpen = True
Case Else: Error ErrNo
End Select
End Function
'method to close DOR in pdf form if it is already open
Sub closeAcrobat()
Dim sStatus
sStatus = IsFileOpen("M:\Daily_Outage_Report\Active\Operations_Daily_Outage_Report_" _
& Format(Date, "yyyy-mm-dd") & ".pdf")
If sStatus = True Then
MsgBox "file is open"
Else
MsgBox "file is not open"
End If
End Sub
答案 0 :(得分:3)
是的,如果你有Admin Rights (Phew!)
可以。
手动测试
OpenFiles
,然后按Enter键ID
,Accessed By
,Type
,Open File (Path\executable)
OpenFiles /Disconnect /ID 123
如果您知道如何从VBA发出DOS命令,现在可以从VBA完成所有这些。