ОБНОВЛЕНИЕ (вопрос перефразирован)
У меня есть 2 разных Private Sub (в ThisWorkbook). Каждый работает нормально "в одиночку".
Тем не менее, когда они оба активированы, я получаю vba error 1004 method intersect of object _global failed
ошибка, возникающая ошибка, если я щелкаю по любой ячейке, намеченной в PS # 2 (C20:C200).
Выделенная строка кода при нажатии на "отладка" находится в PS # 1:
If Not Intersect(Target, Range("RSTcabFINISHING")) Is Nothing Then
Что я должен сделать, чтобы оба сабвуфера работали вместе?
ЧАСТНЫЙ СУБ № 1
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Initialize cabinet finishing board
If testrange("RSTcabFINISHING") Then
If Not Intersect(Target, Range("RSTcabFINISHING")) Is Nothing Then
Target.Offset(0, 1).Resize(, 3).ClearContents
End If
End If
If testrange("RSTcabMATERIAL") Then
If Not Intersect(Target, Range("RSTcabMATERIAL")) Is Nothing Then
Target.Offset(0, 1).Resize(, 3).ClearContents
End If
End If
Application.EnableEvents = True
End Sub
ЧАСТНЫЙ СУБ № 2
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'AUTO COMPLETE - initialize the script (to 0) each time a cell is selected in col "C")
If Selection.Count = 1 Then
If Not Intersect(Target, Range("C20:C200")) Is Nothing Then
Worksheets("HARD").Range("AUTOCOMPhardwareVBASCRIPT").Value = 0
Worksheets("ACC-ST").Range("AUTOCOMPaccessoriesSTVBASCRIPT").Value = 0
Worksheets("ACC-SP").Range("AUTOCOMPaccessoriesSPVBASCRIPT").Value = 0
End If
End If
End Sub
Важная точка:
- У меня есть функция "testrange", которая проверяет, существует ли целевой диапазон в ActiveSheet (помещен в модуль), никаких проблем нет ...
- Я не хочу определять имя листа в PS # 1, потому что этот лист может нуждаться в дублировании.