Vba 关闭其他用户在不同计算机(同一网络)上打开的Adobe Acrobat文件
我一直在致力于为我的工作自动生成报告。我想做的最后一点是了解是否有可能关闭另一个用户在不同计算机(尽管在同一网络上)打开的pdf文件。我使用了教程并编写了以下宏和函数来成功测试文件是否打开,但是,我现在想知道是否可以从其他远程位置关闭文件 有没有人对如何做到这一点有什么建议,或者如果可能的话。我在CloseExcel文档中看到过类似的项目,但在pdf文档中没有Vba 关闭其他用户在不同计算机(同一网络)上打开的Adobe Acrobat文件,vba,excel,Vba,Excel,我一直在致力于为我的工作自动生成报告。我想做的最后一点是了解是否有可能关闭另一个用户在不同计算机(尽管在同一网络上)打开的pdf文件。我使用了教程并编写了以下宏和函数来成功测试文件是否打开,但是,我现在想知道是否可以从其他远程位置关闭文件 有没有人对如何做到这一点有什么建议,或者如果可能的话。我在CloseExcel文档中看到过类似的项目,但在pdf文档中没有 'function to determine if file is open Function IsFileOpen(FileName
'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
是的,如果您拥有
管理员权限(Phew!)
,这是可能的
手动测试它
OpenFiles
,然后按Enter键ID
,访问者
,类型
,打开文件(路径\可执行文件)
OpenFiles/disconnect/ID 123
现在,如果您知道如何从VBA发出DOS命令,所有这些都可以从VBA中完成。我不知道这是否可行,但我当然希望不可行。我不喜欢使用一个文件,然后让其他用户在我身上关闭它。是的,如果你有管理员,这是可能的Access@SiddharthRout假设我有管理员权限,那么执行它的最佳方式是什么呢?@SiddharthRout Hm,给我一些背景,我在一个满墙都是监视器的房间里工作。我们从前一天开始就把报告放在屏幕上,为了不必每天都站起来穿过房间来关闭它,我希望能够远程关闭它。步行的代价很小,但如果我能绕开它,那就太好了。我可以向观众保证,从来没有人会使用pdf文档。@Rivers31334:更好的方法是在目标计算机上安装一个应用程序,每天自动打开正确的文档。我认为罗伯特·哈维(Robert Harvey)有一个很好的解决方法。很抱歉,我在您发布此解决方案时看到了这一点。感谢您的帮助。(a)这是否在其他计算机上工作,或者您是否必须远程登录到打开文件的计算机,或者至少登录到文件所在的计算机(文件服务器)?(b) 它是否真的关闭了文件,或者只是断开了文件服务器(例如)和用户计算机之间的连接,因此,让用户从内存缓存中读取文档?
1
否您不需要在2
中进行远程操作,它会关闭文件。奇怪的是,即使计算机A上的管理员用户也可以看到服务器S上的文件,而服务器S上的文件是由计算机B上的用户通过简单的命令打开的。我原以为他们需要指定他们感兴趣的文件,或者文件所在的服务器,或者访问该文件的计算机。啊-我看到你提到过,他们可以只使用文件名来断开连接