私はいくつかのスレッドを読んで、Shellを使ってVBAからPythonを呼び出すことができることを発見しました。VBA - 呼び出しPythonスクリプト
は、これは私が持っているものです。
Private Sub CommandButton1_Click()
Ret_Val = Shell("C:\Users\....\Anaconda3\python.exe C:\Users\...\REL.py", vbNormalFocus)
If Ret_Val <> 0 Then
MsgBox "ok!", vbOKOnly
End If
End Sub
私はOKメッセージ、および開閉秒以内のウィンドウを得ますか。だから私の推測ではPythonを起動していますが、スクリプトは動作しません。
だから私はスパイダーでコードを書いたので、私は多分動作しないことを考えて、私はスパイダーを起動する必要があるかもしれません:
Ret_Val = Shell("C:\Users\...\Anaconda3\Scripts\spyder.exe C:\Users\...\REL.py", vbNormalFocus)
これはあまりにも多くの時間がかかり、それがどのような私ではないスパイダーを、開きます。欲しいです。また、それが開かれると、スクリプトを起動しません。
何か問題はありますが、それがVBAコードなどのスクリプトに関連しているかどうかはわかりません。スクリプトは、VBAなしでSpyderから実行すると動作します。
これは、Pythonコードの簡単な例です:
# -*- coding: utf-8 -*-
"""
Created on Fri Apr 21 08:24:05 2017
@author: xxxxxx
"""
import pandas as pd
import numpy as np
import datetime
RW = pd.read_excel('Raw_data.xlsx', skipinitialspace=True)
RW=pd.DataFrame(RW, columns = ['Task Id', 'TIDmodRW', 'Start Date', 'End Date', 'Machine', 'Boards'])
writerRW = pd.ExcelWriter('RW_test2.xlsx', engine='xlsxwriter')
RW.to_excel(writerRW, sheet_name='sheet1')
writerRW.save()
これを[mcve]にするサンプルのPythonスクリプトを提供しないのはなぜですか? –
質問に追加しました。私はそれを単純に保つためにカットしましたが、それは優れたものを書いていません。コードはSpyderで動作します – Filippo
おそらく、エラーハンドラが例外を出力し、ウィンドウの前に結果を表示できるように 'input("任意のキーを押して ")'を持つPythonスクリプトにエラー処理を追加することができます閉じます。 'print()'を賢明に使うことで、エラーを投げているPythonコードの行を特定できますか? –