In meinem VBA-Sub, rufe ich ein Python-Skript mit dem Befehl RunPython von xlwings. Ich möchte eine Funktion aufrufen, die ein Array als Parameter verwendet. Wie kann ich den VBA-Datentyp in eine von Python lesbare Liste konvertieren?übergeben Array als Parameter des RunPython-Skript in VBA (xlwings)
Code:
RunPython("import script; script.query(dates=argsArray, queryString='"& myString &"')
Ich kann erfolgreich einen String mit & passieren, obwohl ich weiß nicht, wie das Array argsArray als Parameter zu übergeben.
Klingt gut, obwohl in meiner UDF Signatur VBA, sollte argsArrayAddressString vom Typ Range sein? –
In diesem Fall wäre es eine Zeichenfolge "A1: A3", die dann verwendet wird, um einen Bereich zu erstellen. Python, das auf diese Weise aufgerufen wird, wird ein VBA-Bereichsobjekt nicht verstehen. Wenn Sie komplizierter werden möchten, können UDFs mit Dekoratoren erstellt werden, die Bereiche als numpige Arrays definieren. siehe hier: http://docs.xlwings.org/en/stable/vba.html#function-arguments-and-return-values. und auch hier zu sehen: http://docs.xlwings.org/en/stable/udfs.html –
Ich weiß, irgendwie danken Ihnen, ich schätze Ihre Bemühungen. Ich denke, ich versuche hauptsächlich andere Argumente als Strings an Funktionen in meinem RunPython-Skript zu übergeben. –