이전 값과 새 값을 호출하는 데 사용하는 코드가 있습니다. 그러나 지금 나는 사용자가 간단히 a와 hits 삭제를 실행하면 변경 사항을 실행하고 기록하지만 어떤 이유로 인해 동일한 요청의 인스턴스가 더 많이 실행됩니다. 한 번만 실행되도록하는 방법이 있습니까? 감사이전 값과 새 값 변경
Public OldValues As New Collection
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Sheets("Pagination").Range("J11") <> "Yes" Then Exit Sub
'Copy old values
Set OldValues = Nothing
Dim c As Range
For Each c In Target
OldValues.Add c.Value, c.Address
Next c
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Sheets("Pagination").Range("J11") <> "Yes" Then Exit Sub
On Local Error Resume Next ' To avoid error if the old value of the cell address you're looking for has not been copied
Dim c As Range
For Each c In Target
Sheets("corrections").Cells(Rows.Count, "A").End(xlUp)(2).Value = Now & " Sheet " & ActiveSheet.Name & " Cell " & Target.Address(0, 0) & " has a new value of " & c.Value & "; old value was " & OldValues(c.Address)
Next c
'Copy old values (in case you made any changes in previous lines of code)
Set OldValues = Nothing
For Each c In Target
OldValues.Add c.Value, c.Address
Next c
End Sub
'하이라이트 a'는 무엇을 의미합니까? '더 많은 경우'는 무엇을 의미합니까? 아마도이 문제는 [이 답변] (http://stackoverflow.com/a/17405206/2143262)에 설명 된 방법으로 해결할 수 있습니다. –
예를 들어 셀 B5에서 삭제 버튼을 누르는 경우입니다. 2013 년 9 월 10 일 9:41:15 AM 시트 UCF (2) 셀 B5 : AE5의 새 값은; 이전 값은 5 10/9/2013 9:41:15 AM 시트 UCF (2) 셀 B5 : AE5의 새 값은 다음과 같습니다. 이전 값은 10/9/2013 9:41:15 AM 시트 UCF (2) 셀 B5 : AE5의 새 값은 다음과 같습니다. 이전 값은 10/9/2013 9:41:15 AM 시트 UCF (2) 셀 B5 : AE5의 새 값은 다음과 같습니다. 이전 값이 – imageicb
이었습니다. 솔루션이 내 링크 또는 아래 답변에 있습니다. –