Страницы: 1
RSS
Ошибка type mismatch при удалении всех значений в ячейках
 
Добрый день. При выделении и удалении макросом "Sub УдаленЗначенияЯчейк()" одновременно всех значений в ячейках Range(Cells(1, 1), Cells(2, 2)) возникает ошибка type mismatch. Какое необходимо добавить условие что бы эта ошибка не появлялась?
Выложить файл пример не могу на работе сорри.

Код
Private Sub Worksheet_Change(ByVal Target As Range)
 
If Not Intersect(Target, Range("A1:A2")) Is Nothing Then
   If Target <> 0 And Cells(3, 1) = True Then
     MsgBox "Запустите Ваше действие"
   End If
 End If
 
 If Not Intersect(Target, Range("b1:b2")) Is Nothing Then
   If Target <> 0 And Cells(3, 1) = True Then
     MsgBox "Запустите Ваше действие"
   End If
 End If
 
 
End Sub
Sub УдаленЗначенияЯчейк()
 
Worksheets("Лист1").Range(Cells(1, 1), Cells(2, 2)).Select 'очистка ячеек
Selection.ClearContents
 
End Sub
Быстрее молнии, быстрее ветра, быстрее калькулятора
 
Borrusale, так наверно?
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count <> 1 Then
  MsgBox "Запустите ещё какое-то действие"
  Exit Sub
End If

If Not Intersect(Target, Range("A1:A2")) Is Nothing Then
   If Target <> 0 And Cells(3, 1) = True Then
     MsgBox "Запустите Ваше действие"
   End If
 End If
  
 If Not Intersect(Target, Range("b1:b2")) Is Nothing Then
   If Target <> 0 And Cells(3, 1) = True Then
     MsgBox "Запустите Ваше действие"
   End If
 End If
  
  
End Sub
 
Без проверки в файле вижу что ошибка будет если код например в модуле листа НЕ "Лист1", и если "Лист1" не активен.
 
Апострофф, все работает спасибо. Подскажите, что обозначает "1" в
Код
If Target.Count <> 1
Быстрее молнии, быстрее ветра, быстрее калькулятора
 
Hugo, а что можно такой макрос использовать не в модуле листа? Таких вариантов не видел.
Быстрее молнии, быстрее ветра, быстрее калькулятора
 
Если количество измененных ячеек не равно одному - дословно...
 
Borrusale, Sub УдаленЗначенияЯчейк() запросто.
И кроме того - Вы не указали в каком листе этот макрос.
P.S. И ещё - я написал
Цитата
код например в модуле листа НЕ "Лист1"
, читайте тщательнее :)
Изменено: Hugo - 29.11.2018 12:15:36
 
Hugo, интересует этот макрос Private Sub Worksheet_Change(ByVal Target As Range). Не в модуле листа использовать можно?
Быстрее молнии, быстрее ветра, быстрее калькулятора
 
Не в модуле листа можно использовать вызов этого макроса.
Только нужно сперва убрать Private.
Изменено: Hugo - 29.11.2018 12:26:01
 
В модуле книги -
Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

End Sub
Можно и на уровне приложения сделать (F1 найдите наконец...)
 
Всем спасибо) Все работает буду разбираться !
Быстрее молнии, быстрее ветра, быстрее калькулятора
Страницы: 1
Наверх