Макрос по событию

Автор Владимир К, 25.02.2011, 12:30

« назад - далее »

Владимир К

Добрый день.
Вот, написал простой макрос, чтоб разобраться в его работе, он работает, в ячейке Д4 список, меняю
там значени и в Б7 появляется случайное значение.

Private Sub Worksheet_Change(ByVal Target As Range)
a = Range("D4").Value
Select Case Target
Case Is = a
 Range("B7").Value = Rnd
End Select
End Sub

Ситуация такая. В ячейке G2 (в рабочем файле) у меня список номеров машин, мне нужно, чтобы при выборе другой машины
из этого списка, на листе ниже отображалась информация с другого листа.
Написал по примеру макроса указаного выше другой и вот что получается:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case Is = ThisWorkbook.Sheets("По машине").Range("G2").Value
 ThisWorkbook.Sheets("По водителю").Range("A7").Value = ThisWorkbook.Sheets("По машине").Cells(36, 5).Value
 ThisWorkbook.Sheets("По водителю").Range("B17:L47").Copy
 ThisWorkbook.Sheets("По машине").Cells(39, 5).PasteSpecial xlPasteValues
Case Else
End Select
End Sub

в рабочем файле при изменении номера машины макрос выполняется, всё хорошо,
копируются и вставляются нужные значения, но потом выдаётся ошибка "Run-time error '13' : type mismatch"
При нажатии на кнопку отладка, выделяется строка Case Is = ThisWorkbook.Sheets("По машине").Range("G2").Value

Как быть??
В принципе, раз макрос работает, меня бы даже устроил вариант с перехватом этого сообщения об ошибке и нажатием на нём на кнопку "end" ))

Владимир К

Сам сделал ))
Изменил вот так и заработало
Select Case Target.Address
Case Is = ThisWorkbook.Sheets("По машине").Range("G2").Address