Vinay는 데이터 입력을 위해 Excel 워크 시트를 사용합니다. 정보는 A 열에 입력되고 Vinay는 값이 입력 된시기를 나타내는 A 열에 입력 된 값 옆에있는 B 열에 시간을 자동으로 추가하는 방법을 원합니다.

이 작업을 수행 할 수있는 여러 가지 방법이 있습니다. 첫 번째는 B 열에서 인접한 셀을 선택하고 Ctrl + Shift +를 눌러 시간을 수동으로 입력하는 것입니다. (세미콜론입니다). 이 단축키는 셀의 현재 시간을 입력합니다. 물론이 접근 방식의 문제점은 자동이 아니며 구현하는 데 추가 이동 및 키 입력이 필요하다는 것입니다.

더 나은 접근 방식은 공식을 사용하여 시간을 입력하는 것입니다. NOW 함수는 현재 날짜와 시간을 반환하며 다음과 같은 방식으로 셀에서 사용할 수 있습니다.

=NOW()

물론이 간단한 수식은 워크 시트가 다시 계산 될 때마다 업데이트됩니다. 즉, A 열에 값을 입력 할 때마다 함수가 현재 시간을 반환합니다. 이는 이전 시간을 업데이트하지 않기를 원하기 때문에 바람직하지 않습니다. 다음과 같이 수식을 사용하여 A 열에 무언가가 있는지 확인할 수 있습니다.

=IF(A3="","",IF(B3="",NOW(),B3))

문제는 이와 같은 공식이 워크 시트에 순환 참조를 도입하여 작업해야 할 수많은 과제를 제시한다는 것입니다. 더 나은 방법은 A 열에 항목을 입력 할 때마다 자동으로 실행되는 매크로를 만드는 것입니다. 데이터 입력에 사용되는 워크 시트의 탭을 마우스 오른쪽 단추로 클릭하고 상황에 맞는 메뉴에서 코드보기를 선택합니다. Visual Basic Editor에 워크 시트에 대한 코드 창이 표시되고 다음을 창에 입력합니다.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim rCell As Range     Dim rChange As Range          On Error GoTo ErrHandler     Set rChange = Intersect(Target, Range("A:A"))

If Not rChange Is Nothing Then         Application.EnableEvents = False         For Each rCell In rChange             If rCell > "" Then                 With rCell.Offset(0, 1)

.Value = Now                     .NumberFormat = "hh:mm:ss"

End With             Else                 rCell.Offset(0, 1).Clear             End If         Next     End If

ExitHandler:

Set rCell = Nothing     Set rChange = Nothing     Application.EnableEvents = True     Exit Sub ErrHandler:

MsgBox Err.Description     Resume ExitHandler End Sub

매크로를 사용하면 A 열의 셀에 무언가를 입력 할 때마다 B 열의 인접한 셀에 날짜와 시간이 포함됩니다 (시간 만 표시하도록 서식 지정됨). A 열의 항목을 삭제하면 B 열의 인접한 셀도 지워집니다.

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (12811)은 Microsoft Excel 2007, 2010 및 2013에 적용됩니다. 여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.

link : / excel-Recording_a_Data_Entry_Time [데이터 입력 시간 기록].