2012-10-31 6 views
1

이 매크로에 24 시간 내에 시간을 어떻게 추가합니까 이미 만들었습니까? 여기에 매크로가 있습니다. 타임 스탬프를 추가해야하고 어떻게해야할지 모르겠습니다.VBA Excel에서 날짜 및 시간 변경 24 시간

Private Sub Workbook_Open() 

Dim dtDate As Date 

dtDate = InputBox("Date", , Date) 

Set SelRange = Range("B:B") 
For Each b In SelRange.Rows 
b.Value = dtDate 
b.Offset(0, 1).Value = dtDate + 1 
Next 
End Sub 

이 워크 시트의 매크로를 기준으로 24 시간 동안 늘리려면 시간이 필요합니다. 나는 내가해야 할 일에 대한 모범을 보인다. 이 예제에서 날짜와 시간은 24 시간 내에 증가 할 시간이 필요하다는 것을 보여줍니다.

enter image description here

+0

'시간 소인을 추가해야합니다.'- 무엇을 할 수 있습니까? 워크 시트의 셀? 매크로 시간에 맞추고 싶니? –

+0

@ scott을 워크 시트의 셀에 추가합니다. 감사. – TankTank

답변

1

는 무엇보다도 나는 항상 명시 적 옵션을 사용하는 것이 좋습니다. 도구> 옵션> 편집기 (탭)> 변수 선언 필요 (tickbox)

현재 사업 : B2 (B25 및 C2) 범위를 원한다면 MS VB 창에서 메뉴를 통해 향후 프로젝트에 사용할 수 있습니다. :

Option Explicit 

Private Sub Workbook_Open() 

    Dim SelRange As Range 
    Dim b As Range 
    Dim dtDate As Date 
    Dim intHours As Long 

    'Enter the starting date and time 
    dtDate = InputBox("Start date", , Date) 

    'Initate our hours counter 
    intHours = 0 

    'Assign a worksheet range for our date-time range 
    Set SelRange = Range("B2:B25") 


    'Write the date-time range with 1 hour increments 
    For Each b In SelRange 
     b.Value2 = dtDate + TimeSerial(intHours, 0, 0) 
     '24 hours later in the cell to the right of this 
     b.Offset(0, 1).Value2 = dtDate + 1 + TimeSerial(intHours, 0, 0) 
     intHours = intHours + 1 
     'To avoid an overflow in the TimeSerial function the intHours are keps smaller than then Integer maximum 
     If intHours > 24 Then 
      intHours = intHours - 24 
      dtDate = dtDate + 1 
     End If 
    Next 

End Sub 

당신은 당신이 날짜에 시작 내가 날짜로 시작하므로 언급으로 (짧은 시간이 예에서 C25은) 나는 다음과 같은 것을 사용하는 것이 좋습니다 1 개 시간 단위로 날짜 + 시간으로 채워질)를 InputBox에 저장합니다.

이제 제한된 횟수 만 반복하려면 (B2 : B25)이 적용되는 범위를 제한하여이 작업을 수행 할 수 있습니다. 루프가 아래쪽에 도달하면 루프가 중지됩니다.

이제 C 열에 미래의 날짜 시간이 자동으로 채워집니다. 앞으로 날짜가 지정되도록하려면 C 열의 행에서 시간표 부분을 건너 뜁니다. 이 시간을 1 시간 앞으로 변경하려면 다음 행을 변경하십시오.

b.Offset(0, 1).Value2 = dtDate + TimeSerial(intHours +1, 0, 0) 
+0

네. 그거야. 내가 잡았어. 도와 주셔서 감사합니다. – TankTank

+0

당신은 환영합니다 –

+0

범위 B와 오프셋 + 1에 대해 현재 날짜를 그대로 유지하여 같은 날짜를 반복하지 않고 그대로 유지하고 싶습니다. 그 말이 맞는다면? – TankTank