当前位置: 首页 > 面试题库 >

将结果从Python返回到Vba

冯飞鹏
2023-03-14
问题内容

我正在使用一个调用python脚本的VBA代码。我可以将参数发送到python脚本并使用读取sys.argv[1]

在python代码中,我有一个函数,该函数接受给定的参数并返回一个值。

请问如何在VBA中获得返回值?


问题答案:

考虑使用VBA ShellStdOut捕获输出线流。确保打印Python脚本以筛选值:

蟒蛇

...
print(outputval)

VBA s下面是字符串输出)

Public Sub PythonOutput()

    Dim oShell As Object, oCmd As String
    Dim oExec As Object, oOutput As Object
    Dim arg As Variant
    Dim s As String, sLine As String

    Set oShell = CreateObject("WScript.Shell")
    arg = "somevalue"
    oCmd = "python ""C:\Path\To\Python\Script.py""" & " " & arg

    Set oExec = oShell.Exec(oCmd)
    Set oOutput = oExec.StdOut

    While Not oOutput.AtEndOfStream
        sLine = oOutput.ReadLine
        If sLine <> "" Then s = s & sLine & vbNewLine
    Wend

    Debug.Print s

    Set oOutput = Nothing: Set oExec = Nothing
    Set oShell = Nothing

End Sub


 类似资料:
  • 问题内容: 我已经用多个PythonOperator编写了DAG 我从PythonOperator调用“ Task1”方法。该方法正在返回一个值,该值我需要传递给下一个PythonOperator。如何从“ task1”变量中获取值,或者如何从Task1方法中返回该值? 更新 : 问题答案: 您可能想查看Airflow的XCOM:https : //airflow.apache.org/conce

  • 问题内容: 我在使用ajax时遇到一些问题。 如何将ajax的所有结果分配给外部变量? 我用谷歌搜索并找到此代码。 但不适合我 谁能说出该代码出了什么问题? 问题答案: 您之后缺少逗号 另外,如果要保留匿名函数的结果,则需要进行函数调用: 请注意最后。

  • 问题内容: 我有一个由javascript函数填充的html表单。我还有另一个javascript函数,可获取所有表单元素的值,并且当前仅使用警报将其显示给用户。通过python使用以下代码显示html页面: 这一切都很好,但是我不想使用警报来显示数据,而是想将数据传递回python,但不知道如何。所有数据都存储在javascript数组中,因此我基本上只需要传递这一数据即可。 编辑:我不能使用任

  • 问题内容: 我正在尝试创建一种方法,从中可以查询数据库并检索整个表。 目前,如果我使用这些数据只是正常工作 中 的方法。但是,我希望该方法返回结果。 我正在了解当前代码。 我该如何实现? 问题答案: 您永远不要通过公共方法来回避。这很容易导致资源泄漏,因为您不得不保持语句和连接打开。关闭它们将隐式关闭结果集。但是,将它们保持打开状态将导致它们悬而未决,并且当它们打开过多时,将导致数据库用尽资源。

  • 问题内容: 我有以下从数据库获取十六进制代码的函数 我的问题是我在回调函数中返回了结果,但getColour函数未返回任何内容。我希望getColour函数返回的值。 在我调用getColour的那一刻,它不返回任何内容 我尝试做类似的事情 但当然SELECT查询在返回值时已经完成 问题答案: 您只需要对回调中的db查询结果进行处理。就像。

  • 我有第一活动,它通过意图调用第二活动 在SecondActivity完成后,我希望SecondActivity向FirstActivity发送一些变量。然后调用finsih(),它将返回到第一个活动。如何使SecondActivity发送变量并在FirstActivity中获得结果?