Проблема, вызывающая несколько раз Python Scrpit из Excel - PullRequest
0 голосов
/ 07 ноября 2019

У меня проблема, когда я пытаюсь вызвать сценарий Python из Excel с помощью макроса VBA. Я могу выполнить сценарий только один раз, но если я попытаюсь выполнить его несколько раз, мне придется закрыть книгу Excel и открывать заново каждый раз, когда я хочу выполнить сценарий. Я вызываю макрос из кнопки.

У меня установлена ​​надстройка xlwings для excel.

Сценарий Python считывает таблицу листов Excel в DataFrame Pandas, выполняет некоторые вычисления, вставляет вычислениястолбец в первом пустом столбце таблицы Excel и, наконец, сохранил книгу.

При первом нажатии кнопки в Excel, чтобы выполнить скрипт, он работает правильно, но если я хочу запустить скрипт в другой раз, когдаЯ нажимаю кнопку, ничего не происходит.

Я пытался найти в Google, но я не нашел ничего похожего на эту проблему.

Код макроса vba:

sub MacroName()
    RunPhyton("import script_name")
end sub()

И код Python:

import pandas as pd
import xlwings as xw

def myfunc(arg1, arg2, arg3):
    pass

Book = xw.Book.caller()

df = Book.sheets('sht_name').range('rng_name').options(pd.DataFrame, 
                                                   expand='table',
                                                   index=False).value
df['col_name']  = df.apply(lambda x: myfunc(x['arg1'], 
                                            x['arg2'],
                                            x['arg3']), axis=1)

Book.sheets('sht_name').range('rng_name').options(index = False).value =\
df['col_name']

Book.save()

Код Python работает правильно.

Я ожидал, что скрипт Python запускается каждый раз, когда я нажимаю кнопку, чтобы запустить макрос VBA без необходимости закрыватьExcel книгу и открывать ее каждый раз, когда я хочу запустить скрипт.

Второй и последующие раз я нажимаю кнопку, чтобы запустить макрос ничего не происходит, я тожене появляется сообщение об ошибке.

...