【发布时间】:2018-09-08 08:31:49
【问题描述】:
我正在努力从 Excel VBA(我很熟悉)访问 Python。这里有一个非常有用的答案(转载如下)。我非常仔细地执行了这些步骤 - 无论我使用的是 Python 3.3 还是 Python 2.7,都会出现同样的错误。
当我使用命令按钮执行 VBA 代码时,它在以下语句中失败: PyScript.Language = "python" 带有错误消息“运行时错误 380:无法创建指定语言的脚本引擎”
有什么想法吗?
我尝试使用的 stackoverflow 的答案如下。
仔细按照这些步骤进行
- 转到 Activestate 并获取 [ActivePython 2.5.7][1] MSI 安装程序。
我在 2.6.x 中遇到了 DLL 地狱问题 - 在您的 Windows 机器上安装
-
安装完成后打开命令提示符并转到
C:\Python25\lib\site-packages\win32comext\axscript\client
执行
\> python pyscript.py您应该会看到消息 Registered: Python转到 ms office excel 并打开工作表
- 转到工具 > 宏 > Visual Basic 编辑器
- 添加对 Microsoft 脚本控件的引用![alt text][2]
- 添加新的用户表单。在用户窗体中添加一个命令按钮
-
切换到代码编辑器并插入以下代码
Dim WithEvents PyScript As MSScriptControl.ScriptControl
Private Sub CommandButton1_Click() If PyScript Is Nothing Then Set PyScript = New MSScriptControl.ScriptControl PyScript.Language = "python" PyScript.AddObject "Sheet", Workbooks(1).Sheets(1) PyScript.AllowUI = True End If PyScript.ExecuteStatement "Sheet.cells(1,1).value='Hello'" End Sub
执行。根据需要享受和扩展
【问题讨论】:
-
只是猜测:试试
PyScript.Language = "Python"。 -
我得到了同样的错误,使用 Python 3.3,我也验证了安装/注册。 MS 的精简文档表明
ScriptControl仅支持VBScript或JScriptmsdn.microsoft.com/en-us/library/aa227400(v=vs.60).aspx,我认为您需要使用其他方法。不知道它是如何在另一个问题上获得如此多的赞成票的,但它似乎不起作用。 -
我对 python 的了解不够,无法将其作为答案,因此将其作为评论。 newtonexcelbach.wordpress.com/2013/09/24/python-for-vba-users-1