2016-07-20 2 views
2

DDE를 통해 실시간 데이터를 Excel로 내보내는 옵션이있는 RTD 금융 응용 프로그램에 가입되어 있습니다. 따라서 DDE 복사/붙여 넣기 앱 옵션을 사용하여 실시간 DDE 재무 데이터가 포함 된 Excel 테이블을 만들었습니다. 셀에는 실제로 DDE 수식이 포함되어 있습니다. 이제 테이블을 수동으로 열고 새로 고침하고 저장합니다.하지만 필요한 것은 열 수있는 솔루션입니다. 데이터를 새로 고치고 저장하고이 Excel 테이블을 자동으로 닫습니다.Excel DDE RTD 자동 새로 고침

나는 파일을 첨부하는 방법을 지금하지 않았으므로 여기에 스크린 샷이 있습니다. My Excel DDE file

저는 VBA 및 VBScript에 익숙하지 않아 인터넷을 통해 솔루션을 찾고 있었지만 성공하지 못했습니다. 특히 DDE 데이터 자동 업데이트 (새로 고침)가 필요하지 않았습니다.

지난 며칠 동안 내가 해왔 던 점은 다른 종류의 vba 매크로와 vb 스크립트를 찾고, 시도하고 사용자 지정하는 것이 었습니다. 오늘은 완전히 분실했고 혼란 스럽습니다.

난 당신이 Refresh data and exit with saving Macro ExcelOn workbook open, Excel Macro to refresh all data connections sheets and pivot tables and then export the pivot to csv하지만 내 경우가 작동하지 않습니다, 제안 솔루션의 무리를 시도했다.

모든 솔루션, 참조 코드 예제는 크게 감사하겠습니다.

Application.Calculation = xlCalculationManual Application.Calculation = xlCalculationAutomatic

이 자동 또는 수동으로 공식의를 계산하기 위해 전체 엑셀 응용 프로그램을 설정을 사용하는 경우

답변

0

친절하게 하나 아래를 시도하고 조심. Application.Calculation = xlCalculationManual

을 사용하면 자동 수식이 더 이상 작동하지 않습니다.

+0

재생 해 주셔서 감사합니다. –

+0

코드가 잘 작동합니다. – mulla

+0

아래의 내 대답을 참조하십시오. –

0

@mulla 답장을 보내 주셔서 감사합니다. 그러나 이것은 작동하지 않습니다. vbscript에서 런타임 오류가 발생하고 vba에서 아무 것도 발생하지 않습니다 (다과에 영향을주지 않음). 워크 시트도 마찬가지입니다. 계산.

Excel이 어떻게 업데이트되고 실제로 작동 하는지를 검사하기 위해 링크 (데이터)를 수동으로 업데이트 할 때 매크로를 기록한 것보다 많았지 만 항상 그런 것은 아닙니다. 통합 문서를 수동으로 열면 데이터가 지속적으로 새로 고쳐지기 때문에 전체 내보내기보다 완벽하게 열립니다. 통합 문서가 vbscript를 통해서만 열리는 경우 (내가 필요한 것), 아래 출력에서 ​​볼 수 있듯이 값의 일부가 성공적으로 내보내지고 (일부 빠른 응답은 믿을 수 있음) 일부는 # N/A (느리게 원기 회복). 성공적으로 내 보낸 값을 즉시 새로 고치고 # N/A 값을 새로 고치는 데 몇 초 (2-3 초)가 걸리는 파일을 열 때를 ​​제외하고는 모든 데이터가 매 초마다 새로 고쳐집니다.

레코더 매크로는 ActiveWorkbook을 사용합니다.다음과 같이 updateLink의 (아래 코드는 첫 번째 행에 대한,하지만 같은 논리를 사용하고, 행의 나머지 부분에 대한) : 다음

Sub PriceUpdate() 
ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways 

ActiveWorkbook.UpdateLink Name:= _ 
    "vegadde|VEGA!897789,148,[email protected]""1,\""12,0,0\"""",1", Type:=xlOLELinks 
ActiveWorkbook.UpdateLink Name:= _ 
    "vegadde|VEGA!897789,148,[email protected]""1,\""12,0,0\"""",3", Type:=xlOLELinks 
ActiveWorkbook.UpdateLink Name:= _ 
    "vegadde|VEGA!897789,148,[email protected]""1,\""12,0,0\"""",4", Type:=xlOLELinks 

    ... 

End Sub 

내가 구분 된 CSV 쉼표의 매크로 및 수출 데이터를 호출하는 VBScript를를 사용

Option Explicit 

Dim objExcel, objBook, objSheet 

Set objExcel = CreateObject("Excel.Application") 
Set objBook = objExcel.Workbooks.Open ("d:\exptest\exptest.xlsm", 0, False) 
'Set objSheet = objBook.Worksheets.Item(1) 
objExcel.DisplayAlerts = False 

objExcel.Run "PriceUpdate" 
WScript.Sleep 5000 ' Delay in order to update links 
objBook.SaveAs "d:\exptest\" & Year(Now) & "." & Month(Now) & "." & Day(Now) & "_" & Hour(Now) & "-" & Minute(Now) & ".txt",6 

objBook.Close False 

objExcel.DisplayAlerts = True 

objExcel.Quit 

'Set objSheet = Nothing 
Set objBook = Nothing 
Set objExcel = Nothing 

을 그리고 내가 무엇을 얻을 것은 다음 uotput입니다 : 타임 스탬프 이름으로 파일을

Inst,Price,Datetime 
USD,1.1015,7/22/2016 12:48 
GBP,#N/A,#N/A 
CHF,#N/A,#N/A 
SEK,9.4962,7/22/2016 12:48 
NOK,#N/A,#N/A 
JPY,#N/A,#N/A 
DKK,#N/A,#N/A 
CAD,#N/A,#N/A 
AUD,1.47395,7/22/2016 12:48 
RUB,71.0082,7/22/2016 12:48 

내 문제를 해결하기 위해 다른 업데이트 뒤에 엑셀 논리를 배울 수 고군분투하고있어 원하는 솔루션을 얻지 만 성공하지 못합니다.

그리고 이것은 22 개의 링크가있는 테스트 파일 일뿐입니다. 실제 링크에는 482 개의 링크가 업데이트되어야합니다.