해결 M365윈도우10
VBA 셀 값이 변경 될 때 이전 셀 값 표시
Private Sub Worksheet_Calculate()
With Sheets("기록")
lr = .Cells(Rows.count, "A").End(xlUp).Row
If Range("A1").Value <> .Cells(lr, "A") Then
.Cells(lr + 1, "A").Value = Range("A1").Value
.Cells(lr + 1, "B").Value = Now
End If
End With
End Sub
라는 VBA 코드를 찾아서 사용 하려는데 같은 시트에 원하는 셀 위치에 이전 셀 값을 표시하고싶습니다.
바로 사용해야하는데 아직 VBA 강의를 듣지 않아 수정해서 사용하기가 어렵네요.
내역서라는 시트에서 AS11 셀 값이 변경 될 경우 AZ10 셀에 이전 셀 값이 표시되게 하고 싶습니다.
With Sheets("기록")
lr = .Cells(Rows.count, "A").End(xlUp).Row
If Range("A1").Value <> .Cells(lr, "A") Then
.Cells(lr + 1, "A").Value = Range("A1").Value
.Cells(lr + 1, "B").Value = Now
End If
End With
End Sub
라는 VBA 코드를 찾아서 사용 하려는데 같은 시트에 원하는 셀 위치에 이전 셀 값을 표시하고싶습니다.
바로 사용해야하는데 아직 VBA 강의를 듣지 않아 수정해서 사용하기가 어렵네요.
내역서라는 시트에서 AS11 셀 값이 변경 될 경우 AZ10 셀에 이전 셀 값이 표시되게 하고 싶습니다.
송
댓글 8
이전 셀 값이라는게 변경 전 값을 말합니다.
변경된 이후의 값만 알 수 있기 때문에, 이전 값을 알고 싶다면, 변경 될 때만다 기록을 해 두어야 합니다.
즉 하나의 셀에 값을 기억해 두는 것으로는 이전 값을 알 수 없습니다.
변경되는 계산이 수행 될때는 아직 기록되는 셀을 업데이트 하지 않았으므로 비교는 가능합니다.
위의 코드는 어느 셀이 변경되면, 그 변경된 값을 다른 시트에 계속 누적하여 기재하여 LOG처럼 기록을 남기는 것입니다.
이런 방식으로 하면 최종값의 바로 앞이 "이전 값"이 될 수 있습니다.
"A1"셀 주소는 값이 변경될 "AS11"을 넣으시면 됩니다.
원래 요청하셨던 AZ10셀에 기록해서는 말씀 드린 것처럼 진행할 수 없습니다.