홈>
내 문제에 대한 해결책을 찾지 못해 처음으로 글을 씁니다. 사용자가 Excel에서 일부 Python 프로그램을 시작할 수 있도록하고 싶습니다. 그래서 어느 시점 에서이 VBA 코드가 있습니다 :
lg_ErrorCode = wsh.Run(str_PythonPath & " " & str_PythonArg, 1, bl_StopVBwhilePython)
If lg_ErrorCode <> 0 Then
MsgBox "Couldn't run python script! " _
+ vbCrLf + CStr(lg_ErrorCode)
Run_Python = False
End If
str_PythonPath = "C:\Python34\python.exe C:\Users\XXXX\Documents\4_Python\Scan_FTP\test.py"
str_PythonArg = "arg1 arg2"
여러 테스트 후 파이썬에서 오류가 발생하는 행은 다른 모듈을 가져 오려고 할 때입니다 (이 VBA 코드가 파이썬에서 아래 행없이 작동한다는 것을 정확하게 알고 있습니다).
fct_Ftp를 ftp로 가져 오기
모듈의 구조는 다음과 같습니다 :
4_Python
-folder: Scan_FTP
- file: test.py (The one launch from VBA)
-file: fct_Ftp.py
(정보를 위해 파일의 구조를 변경하고 성공하지 않고 테스트하기 위해 다른 위치에 파일을 복사하려고합니다)
Test.py를 다음과 같이 직접 실행할 때 가져 오기에 문제가 없습니다 :
import sys, os
sys.path.append('../')
하지만 VBA에서 가져 오기가 작동하지 않습니다. 그래서 이보다 일반적인 솔루션을 찾았습니다 .Excel/VBA에서 잘 작동하지 않습니다.
import sys, os
def m_importingFunction():
str_absPath = os.path.abspath('')
str_absPathDad = os.path.dirname(str_absPath)
l_absPathSons = [os.path.abspath(x[0]) for x in os.walk('.')]
l_Dir = l_absPathSons + [str_absPathDad]
l_DirPy = [Dir for Dir in l_Dir if 'Python' in Dir]
for Dir in l_DirPy:
sys.path.append(Dir)
print(Dir)
m_importingFunction()
try:
import fct_Ftp as ftp
# ftp = __import__ ("fct_Ftp")
write += 'YAAAA' # write a file YAAAA from Python
except:
write += 'NOOOOOO' # write a file NOOOOO from VBA
f= open(write + ".txt","w+")
f.close()
매우 까다로운 질문이므로 도와 주시겠습니까?
여러분 감사합니다.
- 답변 # 1
관련 자료
- VS Code에서 Python 모듈을 올바르게 가져 오는 방법은 무엇입니까?
- 파일 이름에 마침표가있는 Python 3 모듈을 어떻게 가져올 수 있습니까?
- python 3.x - 사용중인 모듈 (pycharm)에서 해당 함수 만 가져 오는 방법
- anki - pyodide 및 python 모듈이있는 wep 페이지가 iOS에서는로드되지 않지만 Android 및 데스크톱에서는로드 할 수있는 이유는 무엇입니까?
- pip - Python이 새로 설치된 모듈을 찾을 수 없습니다
- modulenotfounderror - 'python'이라는 모듈이 없습니다
- 파이썬 휠 만들기 - "______라는 모듈 없음"
- 다중 디렉토리 프로젝트에서 Python 모듈을 올바르게 가져 오려면 어떻게해야합니까?
- python 3 가져 오기 오류 attributeerror - c ++에서 스크립트를 호출 할 때 '_modulelock_'개체에 'name'속성이 없습니다
- Python은 win32crypt를 가져올 수 없습니다
- installation - 파이썬 모듈에서 requirementstxt 파일을 설치하는 방법은 무엇입니까?
- numpy 모듈을 가져올 때 Python 오류가 있습니다
- 파이썬에서 VS 코드로 파일을 가져올 수없는 이유는 무엇입니까?
- node.js - ES 모듈을로드하려면 가져 오기를 사용해야합니다 /Users/*path/@babel/runtime/helpers/esm/objectWithoutPropertiesLoosejs ES 모듈의 require ()는 지
- visual studio code - Python 미해결 가져 오기 VisualStudio
- Python 키보드 모듈, 사용자 대기
- crontab을 실행할 때 MacOS에서 python 가져 오기 오류가 발생합니다
- pyttsx3 python 모듈을 사용할 수 없습니다
- Python 3에서 vlc 모듈의 콘솔 출력을 침묵시키는 방법
- javascript - '모듈 외부에서 import 문을 사용할 수 없음'다음에 'uncaught typeerror - failed to resolve module specifier'
관련 질문
- Python 스크립트를 호출하는 VBA
- Excel VBA에서 열에서 키워드 찾기 및 다른 열 편집
- 루프가 성능을 죽이는 동안 Excel VBA 수행
- Excel 워크시트를 여러 Excel 통합 문서로 분할하는 방법
- excel : VBA 고유한 열 데이터를 기반으로 새 WB 생성 및 새 WB 범위를 테이블로 변환
- excel : 레code 수와 순서가 다른 두 데이터 세트 비교
- Excel VBA로 파일 삭제
- excel : B열의 항목을 기준으로 A열의 항목 채우기(B열에 두 개 이상의 항목이 있는 경우에만)
- excel : vba를 사용하여 사전에서 데이터 스크랩
- Excel에서 전체 행을 찾고 삭제하기 위해 내 code에서 런타임 오류 13을 해결하는 방법
명령 줄에서 프로그램을 시작할 수 있습니까?
엑셀로 배치 파일을 생성하지 않은 이유는 무엇입니까?