如何获取运行我的VBA代码的当前Excel实例的进程ID?我不想通过标题中的名称来询问它,当我有两个或更多具有相同标题的Excel实例时会导致问题。
答案 0 :(得分:16)
您可以使用此方法获取当前进程ID。
Declare Function GetCurrentProcessId Lib "kernel32" () As Long
This page很好地概述了如何在各种版本的Excel中完成它。
答案 1 :(得分:3)
作为vba n00b,其他一些我不知道的事情
Declare语句位于顶部。如果在子声明
之后插入声明语句,VBA将会抱怨例如,这将起作用
Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Sub Update
...
...
End Sub
但这不起作用
Sub Update
...
...
End Sub
Declare Function GetCurrentProcessId Lib "kernel32" () As Long
以下是我们如何在vbscript
的消息框中显示PIDSet app = CreateObject("Excel.Application")
MsgBox("Excel PID is " + CStr(app.Run("GetCurrentProcessId")))
希望这有助于某人
答案 2 :(得分:2)
我在Excel 2013中的解决方案:在新模块中,我添加了以下代码:
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Public Sub Test()
Debug.Print GetCurrentProcessId
End Sub