如何在excelvba中运行Python命令?

2024-09-30 03:25:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难从excelvba(我很熟悉)访问Python。这里有一个非常有用的答案(转载如下)。我非常仔细地遵循了这些步骤——无论我使用的是Python3.3还是Python2.7,都会出现相同的错误。在

当我使用命令按钮执行VBA代码时,它在以下语句中失败: PyScript.语言=“Python” 出现错误消息“运行时错误380:无法创建指定语言的脚本引擎”

有什么想法吗?在

我尝试使用的stackoverflow的答案如下。在

仔细遵循这些步骤

  1. 转到Activestate并获取[ActivePython 2.5.7][1]MSI安装程序。
    我在2.6.x版上遇到了DLL问题
  2. 在Windows计算机中安装
  3. 安装完成后,打开命令提示符并转到

    C:\Python25\lib\site-packages\win32comext\axscript\client

  4. 执行\> python pyscript.py 您应该会看到消息Registered:Python

  5. 转到ms office excel并打开工作表

  6. 转到“工具”>;“宏”>;“Visual Basic编辑器”
  7. 添加对Microsoft脚本控件的引用![替换文本][2]
  8. 添加新的用户窗体。在用户窗体中添加CommandButton
  9. 切换到代码编辑器并插入以下代码

    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
    

执行。享受并根据需要扩展


Tags: 答案代码用户gt脚本语言消息错误
1条回答
网友
1楼 · 发布于 2024-09-30 03:25:56

我运行的是32位Excel2010和AnacondaPython2.7。我完全按照上面所述的步骤操作,只是为了简单起见,我没有创建用户窗体或按钮,并从dim语句中删除了“WithEvents”,并将sub公开(见下文)。使用Alt-F8从工作表运行宏,它可以正常工作。在

我也在excel2013中测试过,没有问题。在

Public Sub TestPyScript()
Dim PyScript As MSScriptControl.ScriptControl
   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

相关问题 更多 >

    热门问题