Цель моего кода - взять старое значение ячейки и проверить его на новое значение, если оно введено. И если старое значение изменится на новое значение, обновите дату в указанной ячейке.Тип ошибки несоответствия excel VBA
Проблема с моим кодом заключается в том, что я не могу найти способ обойти эту ошибку без нарушения кода, поэтому у меня возникли проблемы с попыткой исправить эту строку кода. У меня этот код в двух листах, причем оба значения изменяются для разных ячеек. Проблема в том, что этот код работает только в том случае, если он предназначен для одного рабочего листа, но когда я использую два с тем же кодом, он выдает ошибку несоответствия типа.
Вот мой код:
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
Я не уверен, какой тип означает ошибка несоответствия, так что я не в состоянии решить эту проблему самостоятельно. Мой вопрос в том, как я могу правильно обновлять свои ячейки без этой ошибки с ошибкой несоответствия?
EDIT: Имейте в виду, что один рабочий лист ищет числовые изменения данных, а другой рабочий лист ищет изменения строковых значений, я не уверен, если это имеет значение. Если я вытащу весь код для одного листа, код будет работать для другого, но когда я верну его обратно, они оба перестанут работать.
спасибо.
Я узнаю этот код! – YowE3K
Ха-ха, да, я снова вернулся: p – juiceb0xk
Я предполагаю, что событие «Change» было запущено без события «SelectionChange», которое было запущено перед ним. Возможно, обновленная ячейка была выбрана ячейкой при открытии книги? Возможно, вам придется заставить его запускать события «SelectionChange» при первом открытии книги или гарантировать, что рабочая книга не будет сохранена с выбором в любом месте D4: D21. – YowE3K