Я пытался вызвать сценарий Python из vba, но он возвращает числовую серию вместо желаемого результата.
Вот сценарий python:
def hello():
df = pd.DataFrame(data=[2,2])
df.to_excel("hello_output.xlsx")
return "Hello"
hello()
Я попытался реализовать сценарии vba из следующих сообщений stackoverflow и видеороликов YT:
Как вызвать python сценарий на excel vba?
Запустить и выполнить python скрипт из VBA https://www.youtube.com/watch?v=rlHcrAb2_fs&t=1s https://www.youtube.com/watch?v=Z4SC53VZh-w
Вот мой скрипт VBA (я пробовал как с одной, так и с двумя bakcslashes):
Sub RunPythonScript()
PythonExe = """C:\\Users\\username\\anaconda3\\python.exe"""
PythonScript = """C:\\Users\\username\\all scripts\\hello.py"""
retval = Shell(PythonExe & " " & PythonScript)
Worksheets("Sheet1").Range("D15").Value = retval
MsgBox (retval)
End Sub()
Файл "hello_output.xlsx" не создается.
MsgBox выводит числовую серию (возможно, какой-то идентификатор процесса) вместо строки «Hello».
К вашему сведению, у меня установлены два интерпретатора python, и я попытался указать путь к файлу для них обоих. Интерпретатор anaconda python выдает следующее сообщение об ошибке при открытии вручную:
«Этот Python интерпретатор находится в среде conda, но среда не была активирована. Библиотеки могут не загружаться. Для активации в этой среде см. https://conda.io/activation "
Я написал свой код python в Spyder.
Мы будем очень признательны за любые предложения, как это исправить.