728x90
어제 DDE 연결을 하고 해당엑셀파일을 파이썬에서 데이터프레임으로 가져와 데이터 처리를 하려고 했다.
그런데 1분 간격으로 데이터를 모니터링하려고 했는데 계속 같은 데이터만 읽어오는 오류를 발견했다.
이유는 엑셀에서 저장된 시점에서의 값만 가져오기때문에 실시간 반영하는 엑셀데이터 값을 가져오려면
강제로 저장버튼을 눌러주어야 한다는 것을 깨닫고
이번에는 VBA로 1분간격으로 자동 저장하는 스크립트를 작성해 보았다.
그런데 이 방법은 매월 새로운 DDE를 만들 때마다 이 스크립트를 반영해주어야 한다는 불편함이 존재한다.
시간이 나면 다른 방법을 찾아보고 싶은데 일단 빨리 진행해야 하는 관계로 일단 이 방법 노팅해 둔다.
===> 이후에 다른 방법 사용 : 파이썬으로 접근하지 말고 집계용 엑셀파일 만들어 여기서 DDE 파일을 참조하고 저장하면 됨
1. 엑셀 VBA에서 모듈을 삽입하고 다음과 같은 스크립트를 작성한다.
Dim SaveTime As Date
Sub StartSave()
'''' 1분 후에 자동 저장을 실행하도록 시간간격을 설정
SaveTime = Now + TimeValue("00:01:00")
Application.OnTime SaveTime, "Save"
End Sub
Sub StopSave()
' 자동 저장을 중지
On Error Resume Next
Application.OnTime SaveTime, "Save", , False
On Error GoTo 0
End Sub
Sub Save()
' 현재 파일을 저장
ThisWorkbook.Save
' 다음 저장 시간을 다시 설정
StartSave
End Sub
2. 현재_통합_문서를 클릭하고 현재 워크북에 이벤트 스크립트를 작성한다.
'===== 엑셀파일 열때 실행할 이벤트 스크립트 : 워크북에서 작성해야함====
Private Sub Workbook_Open()
StartSave
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
StopSave
End Sub
https://datawith.tistory.com/135
728x90
728x90
'데이터 분석 환경' 카테고리의 다른 글
엑셀데이터 DDE 연동 1 - 관심종목 실시간 현황판 만들기 (1) | 2024.07.08 |
---|---|
비지도학습 맛보기와 오렌지3 (Orange3) 설치 (0) | 2023.12.28 |
LSTM 활용한 주식가격 예측 모델 만들기 첫걸음. (0) | 2023.11.14 |
주피터노트북(Jupyter Notebook) 가상환경 적용하기 (0) | 2023.09.05 |
댓글