2017-02-20 1 views
0

로이터의 추가 기능을 통해 엑셀에서 매시간 업데이트해야하는 실시간 데이터가 있습니다. 이것은 대개 자동으로 수행되지만 다른 종류의 데이터를 제공하기 때문에 수동으로 "새로 고침"버튼을 클릭해야만 새로 고침됩니다. 따라서, 한 시간에 한 번이 버튼을 클릭하여 내 VBA를 얻는 방법을 찾을 수 없으면 내 전체 모델은 쓸모가 없다 ... 하하!Addin 도구 모음의 단추를 클릭하여 VBA 가져 오기 ... CommandBars?

나는 commandBars를 통해 이러한 작업을 수행 할 수 있다고 읽었지만 모든 정직함에서 나는 온라인에있는 예제를 이해하는 데 어려움을 겪고 있습니다.

도움을 주시면 감사하겠습니다.

감사합니다.

답변

0

이 코드는 사용해 볼 수 있습니다. 일정 간격으로 필요한 매크로를 시작하기 위해 매크로를 실행할 스케줄러를 실행할 수 있습니다.

Private Sub Workbook_Open() 

Do While TimeValue(Now) < "23:59:59" 
    ' Enter the name of the Macro that you want to run in the NAME OF MACRO field 
    Application.OnTime TimeValue(Now), "NAME OF MACRO" 

    newHour = Hour(Now()) 
    newMinute = Minute(Now()) + 10 
    newSecond = Second(Now()) 
    waitTime = TimeSerial(newHour, newMinute, newSecond) 
    'Waits for 10 minutes 
    Application.Wait waitTime 
Loop 

End Sub 

통합 문서 열기 이벤트에서이 매크로를 실행하십시오. 통합 문서 개체 (ThisWorkbook)의 개인 모듈로가는 가장 빠른 방법은 "파일"옆에있는 Excel 아이콘을 마우스 오른쪽 단추로 클릭하고 "코드보기"를 선택하는 것입니다. 나는 그것을 10 분으로 예정했다. 필요한 빈도에 따라 변경할 수 있습니다.

그러나이 코드에는 한계가 있습니다. 항상 엑셀을 열어 두어야합니다. 또한 다른 매크로를 전혀 실행할 수 없습니다. 이것이 하루 종일 실행되어야하는 것이라면, 전용 시스템에서이 기능을 실행하는 것이 좋습니다. 그렇지 않으면 특정 요구 사항에 따라 코드를 변경해야합니다.

희망이 솔루션을 사용하면 도움이됩니다! 추가 도움이 필요하면 알려주세요.

+0

'OnTime'은 좋은 옵션이지만 제대로 구현되지 않았습니다. http://www.cpearson.com/excel/OnTime.aspx를 참조하십시오. 'Application.Wait'을 사용하면 Excel이 VBA에 머 무르지 않게됩니다. – R3uK

관련 문제