Bloomberg 추가 기능이 포함 된 Excel 자동 실행에 문제가 있습니다.Powershell Excel 자동 Bloomberg 추가 기능
Excel 워크 시트를 수동으로 열면 Bloomberg 추가 기능의 데이터 기능이 자동으로 실행됩니다. 하지만 파워 쉘과 같은 시트를 열고 저장할 때,로드 된 데이터가 없습니다
코드 - Excel을 시작하고 열려있는 통합 문서 : 나는이 방법으로 재 계산을 강제로 시도
$xls = New-Object -ComObject Excel.Application
$xls_workbook = $xls.Workbooks.Open("Market_data.xlsx")
$xls_workbook.Activate()
:
$xls.Calculate()
$xls.CalculateFull()
$xls.CalculateFullRebuild()
$xls.Workbooks.Application.CalculateFullRebuild()
$xls_workbook.Worksheets(1).Calculate()
하지만 아무 것도 효과가 없습니다. Storm. 왜냐하면 내가 언급했듯이 Excel 시트를 수동으로 열면 Bloomberg의 데이터가 자동으로로드되기 때문입니다.
블룸버그 추가 기능 자동화에 대한 경험이 있습니까? 포함 된 .xla 매크로도 확인하고 싶었지만 (BloombergUI.xla, BloombergHistory.xla) 비밀번호로 보호되어 있습니다. Excel에서 모든 추가 기능을 강제로 실행할 수있는 옵션이 있습니까? 또는이 추가 기능을 실행할 수있는 $ xls.Application.Run()과 같은 호출이 있습니까?
당신에게
전체 코드를 감사 : Excel을 열고 "새 객체 -ComObject이 Excel.Application"을 사용할 때 블룸버그 추가 기능이 전혀로드되지
$xls = New-Object -ComObject Excel.Application
$xls_workbook = $xls.Workbooks.Open("MarketData.xlsx")
$xls_workbook.Activate()
#calculation
$xls.Calculate()
#$xls_workbook.Aplication.Run("RefreshAllStaticData") - THIS RETURNS ERROR, THAT MACRO IS NOT AVAILABLE OR MACROS ARE DISABLED
#my current option of waiting
$internal_timeout = new-timespan -Seconds $timeout
$sw = [diagnostics.stopwatch]::StartNew()
while ($sw.elapsed -lt $internal_timeout){
}
#maybe next option, how to wait until job finished
#$job = Start-Job -ScriptBlock {
#docalculation
#}
#Wait-Job $job -Timeout $timeout | out-null
$date = Get-Date -Format M_dd_yyyy
$file_to_save = "MarketData_$date.xlsx"
$xls_workbook.SaveAs($file_to_save)
$xls_workbook.Close();
$xls.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($xls)
. 닫을 때까지 기다릴 수도 있지만 (말하기가 얼마나 어려운지), "# N/A 데이터 요청"셀의 수를 계산하는 수식을 가지며 주기적으로 확인하여 0에 도달하면 통합 문서를 닫을 수 있습니다. – assylias
참고 : http://stackoverflow.com/questions/8669845/bloomberg-data-doesnt-populate-until-excel-vba-macro-finishes – assylias
내 대기 루프의 문제가있을 수 있습니다. 위 질문에 전체 코드를 추가했습니다. 어쩌면 당신은 그것이 의미가 있는지를 확인할 수 있습니다. 고마워요! $ timeout은 매개 변수이며 15 초, 30 초 등과 같이 많은 옵션을 설정하려고했습니다. –