Редактировать: я почти убежден, что это перенос из-за ошибки в Excel для Mac, задокументированный здесь
Сообщение об ошибке первоначально отображалось при нажатии раскрывающегося меню вОкно кода редактора VBA рабочего листа, как описано в ссылке выше.С тех пор не только начиналась ошибка, описанная ниже, но и другие попытки редактировать диапазон в определенной рабочей таблице приводили к тому же сообщению об ошибке.Даже что-то простое, например
Worksheets("Sheet2").Range("A1").Value = 3.14159
Что я сделал для решения проблемы:
- Создан новый лист
- Скопировано содержимое листа 2 на новый лист
- Скопировал фрагмент VBA в окно ThisWorkbook вместо окна нового листа.
- И это сработало - нет сообщения об ошибке 458
Спасибо QHarr за отзывы и исправления;Я включил и ваши предложения в код.
Оригинальный вопрос ниже
Я на Mac, пишу событие «Изменение листа рабочей книги».Он срабатывает корректно, но выдает ошибки в строке «DimservationRange As Range».Использование Excel 16.19 Вот ошибка:
Ошибка времени выполнения '458':
Переменная использует тип автоматизации, не поддерживаемый в Visual Basic
Вот код:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
With ThisWorkbook.Worksheets("Sheet2")
Dim reservationRange As Range
reservationRange = .Range("I16:N500")
' If change was made in Reservations section
If Not Intersect(Target, reservationRange) Is Nothing Then
Dim reservationRow As Integer
reservationRow = Target.Row
' If weekly budget is less than 0
If .Range("O" & reservationRow).Value < 0 Then
' Output Message and undo
MsgBox ("Error")
Application.Undo
End If
End If
End With
End Sub