2016-11-28 3 views
1

내 코드의 목표는 셀의 이전 값을 가져 와서 새 값 (입력 된 경우)과 비교하는 것입니다. 이전 값이 새 값으로 변경되면 지정된 셀에서 날짜를 업데이트하십시오.형식 불일치 오류 VBA Excel

내 코드의 문제점은 코드 분할없이이 오류를 해결할 수있는 방법을 찾을 수 없다는 것입니다. 따라서이 한 줄의 코드를 수정하는 데 문제가 있습니다. 두 개의 워크 시트에이 코드가 있습니다. 둘 다 다른 셀에 대해 값이 변경되었습니다. 문제는이 코드가 하나의 워크 시트에 대해서만 작동하지만 동일한 코드로 두 개를 사용할 때 형식 불일치 오류가 발생한다는 것입니다.

여기 내 코드입니다 :

Dim oldValue As Variant 

Public Sub Worksheet_SelectionChange(ByVal Target As Range) 
'My other worksheet is referencing cells E2:E100 
oldValue = Me.Range("D4:D21").Value 
End Sub 

Private Sub Worksheet_Change(ByVal Target As Range) 
If Not Intersect(Target, Me.Range("D4:D21")) Is Nothing Then 
Dim c As Range 
For Each c In Intersect(Target, Me.Range("D4:D21")) 
    'Check value against what is stored in "oldValue" 
    'Type mismatch is on this line here 
    If oldValue(c.Row - 3, 1) <> c.Value Then 
     'Update value in column L (8 columns to the right of column D) 
     c.Offset(0, 7).Value = Date 'or possibly "= Now()" if you need the time of day that the cell was updated 
    End If 
Next 
End If 
End Sub 

내가 불일치 오류가 무엇을 의미하는지 유형 확실하지 않다, 그래서 나는 나 자신이 문제를 해결 드릴 수 없습니다. 내 질문은, 어떻게 제대로이 불일치 오류 던지기없이 내 셀을 업데이트 할 수 있습니다?

편집 : 한 워크 시트는 숫자 데이터 변경을 찾고 다른 워크 시트는 문자열 값 변경을 찾고 있으므로이 문제가 중요한지 확실하지 않습니다. 하나의 워크 시트에 대한 모든 코드를 꺼내면 코드가 다른 코드에서도 작동하지만 다시 넣을 때 둘 다 작동하지 않습니다.

감사합니다. 그것은 때때로 전에 화재로 Workbook_Open 이벤트는 때때로 "문제"있는 모든 Worksheets가 완전히로드 -

Private Sub Workbook_Open() 
    Application.ScreenUpdating = False 
    Dim ws As Worksheet 
    Dim ws1 As Worksheet 
    Set ws1 = ActiveSheet 
    For Each ws In Worksheets 
     ws.Activate 
     ws.Range("A1").Select 
    Next 
    ws1.Activate 
    Application.ScreenUpdating = True 
End Sub 

한 경고 (ThisWorkbook의 코드에 배치) :

+0

나는 그 코드를 인식합니다! – YowE3K

+0

하하 예, 다시 한번 돌아 왔습니다 : p – juiceb0xk

+0

'Change' 이벤트가'SelectionChange' 이벤트가 발생하지 않고 해고되었다고 생각합니다. 통합 문서를 열 때 선택한 셀이 업데이트 된 셀 일 수 있습니까? 통합 문서가 처음 열릴 때'SelectionChange' 이벤트를 강제로 실행하거나 D4 : D21의 아무 곳에서나 통합 문서가 저장되지 않도록 할 수 있습니다. – YowE3K

답변

2

다음과 같은 코드를 시도 할 수 .

+0

여전히 형식 불일치 오류가 발생합니다. – juiceb0xk

+0

@ juiceb0xk - 통합 문서를 닫은 다음 다시 열어도? – YowE3K

+0

예, 참조 된 셀 이외의 곳에 저장된 선택 사항을 사용하여 여러 번 시도했습니다. – juiceb0xk