안녕하세요.
Option Explicit

Public Sub repeatMacro()
Dim LastRow As Long
Dim ws As Worksheet

 Set ws = ThisWorkbook.Sheets("Sheet1")
    LastRow = ws.Cells(Rows.Count, "A").End(xlUp).Row
    ws.Range("A1").Value = Format(Now, "hh:mm:ss")  
    ws.Range("A" & LastRow + 1) = Range("A1").Value

    Application.OnTime Now + TimeValue("00:00:03"), "repeatMacro"
    
End Sub

위 코드는 Application.OnTime 사용하여 매 3초마다 현재시각을 A1에 갱신해줍니다.

정말 매 3초마다 반복실행하는 지 알아보려고

이 갱신된 시간정보 A1 값을 누적기록해 봤습니다.

매3초마다 기록을 하므로 누적기록에는

위/아래 행도 3초의 차이가 나야 합니다.

그리고 1분당 라인 20개가 추가되어야 하죠. 60초는 3초가 20번 잇으니까요.

예를 들어 오전 10:00:00 에 실행버튼 누르면

10:00:00

10:00:03

10:00:06

10:00:09

.

.

이런식으로 누적기록해 가야 합니다. 그런데 실제로 해보면

10:00:00

10:00:31   <-----  위/아래가 30초 차이가 남. 즉 30초동안 실행안함

10:01:01   <--- 그러다 또 잘 되기도 함.

10:01:03

.

.

실제 실행해보면 3초마다 일때도 있고, 10초마다 일때도 있고, 가끔은 1초에 서너번을 갱신할 때도 있고.. 시간이 정말 지 멋대로입니다.

한두번 1초 정도 안맞는건 일시적인 CPU할당때문이라고 이해하겠는데... 이건 뭐 너무 터무니없게 안맞아
  • 첨부파일을 올려놓았으니 직접 실행해보시면 압니다.
  • 컴마다 달라 어떤 컴에서는 잘 될수도 있어서 제 컴에서의 캡쳐파일을 올려드리겟습니다.
  • 혹시 내컴에서는 잘 되는데요? 라는 분이시면 [ 잘 된다고 ] 말씀해주시면 고맙겠습니다.

시간이 왜 안맞는지 그 이유가 무엇이고 해결책을 알려주시면 고맙겠습니다.
1111.jpg