반응형
특정 셀의 데이터가 변경될 경우 언제 바꼈는지 시간을 기록하고 싶을 때가 있다.
간단한 vba 코딩으로 해결해보자!
1. VBA 코드(단일 셀)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row > 1 Then
Cells(Target.Row, "D") = time
End If
End Sub
Target = 현재 데이터가 변경된 셀 정보
time = 현재 시간 정보 (시분초)
now = 오늘 날짜 및 시간 (년월일 시분)
코드 해석: 타켓의 열이 1번(A열)이고 행이 1보다 크다면 타켓의 행번호와 D열에 현재 시간을 입력하라.
2. VBA 코드(범위)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row > 1 Then
If Target.Count > 1 Then
Range(Cells(Target.Row, "D"), Cells(Target.Row + Target.Count - 1, "D")) = Time
Else
Cells(Target.Row, "D") = Time
End If
End If
End Sub
타겟의 카운트가 1보다 클 경우 범위로 인식되며 선택된 범위만큼 시간을 입력하도록 한다.
이 코드에서는 A열의 값이 변경될 때만 시간이 입력되며, B,C열이 바뀌어도 아무런 동작을 하지 않는다.
※ TMI: 도박사는 중졸아니며 나이도 63살 아님
2. VBA 코드 넣을 위치
그래서 이거 어디에 넣어야 쓸 수 있는가!?!?
- vba 편집기 > 프로젝트 창에서 해당 기능이 필요한 시트를 더블클릭한다.
- 코드 편집창이 나타나면 왼쪽 목록상자에서 Worksheet 선택
- 오른쪽 목록상자에서 Change 선택 후 위 코드를 붙여넣으면 끝
반응형
'컴퓨터 공부 > 엑셀 & VBA' 카테고리의 다른 글
[엑셀vba] with를 이용해서 편하게 코딩하자 (0) | 2022.02.15 |
---|---|
[엑셀vba] 파일이름 변경하기 (Name AS) (0) | 2022.01.22 |
[엑셀vba] InputBOX 함수를 이용해 입력값을 받아보자! (0) | 2021.09.09 |
[엑셀vba] Msgbox를 이용해서 메세지 팝업창을 띄워보자!(feat. 줄바꿈, 버튼 형식) (4) | 2021.09.09 |
[엑셀vba] 사용자 정의 폼 - Label, TextBox 텍스트의 세로 정렬을 가운데로 해보자! (0) | 2021.08.28 |