Вы попросили вставить строки, а не для очистки листа, а затем вставить строки.
Прилагаемый Worksheet_Change даже код является примером того, как сделать то, что вы задаете ...
Private Sub Worksheet_Change(ByVal Target As Range)
Dim srcSht As Worksheet
Dim lstRow As Long, lstCol As Long
Dim srcRng As Range
Dim tarRng As Range
If Target.Address = "$A$1" Then
Set tarRng = ActiveSheet.Range("A2")
If Target.Value = "temp1" Then Set srcSht = Worksheets("Shtemp1")
If Target.Value = "temp2" Then Set srcSht = Worksheets("Shtemp2")
If srcSht Is Nothing Then Exit Sub
lstRow = srcSht.Range("A" & srcSht.Rows.Count).End(xlUp).Row
Set srcRng = srcSht.Range(srcSht.Cells(1, 1), srcSht.Cells(lstRow, 1))
srcRng.EntireRow.Copy
tarRng.EntireRow.Insert shift:=xlDown
End If
Set tarRng = Nothing
Set srcRng = Nothing
Set srcSht = Nothing
End Sub
Ниже экрана крышка Shtemp1 ...
. .. и экранную крышку Shtemp2 ...
Когда «TEMP1» набирается в ячейку A1 листа с кодом прилагается, вы получите это ...
... изменение ячейки A1 в «temp2», вы получите это. ..
[Хорошо] (http://stackoverflow.com/help/how-to-ask). Вероятно, вы захотите изучить событие «Изменение рабочего листа». – BruceWayne