2016-04-25 2 views
0

Я создал несколько шаблонов из разных строк (одинаковых столбцов), которые я хочу, чтобы их вставляли и вставляли на основе изменения значения ячейки.Вставить массив в качестве шаблона на основе значения ячейки

Таким образом, если вы измените A1 на значение temp1, он введет строки/значения массива шаблонов temp1 (100 строк) из другого листа, а если вы измените A101 на значение temp2, он будет вставлять строки/значения массив шаблонов temp2 (25 строк) из другого листа.

+1

[Хорошо] (http://stackoverflow.com/help/how-to-ask). Вероятно, вы захотите изучить событие «Изменение рабочего листа». – BruceWayne

ответ

0

Вы попросили вставить строки, а не для очистки листа, а затем вставить строки.

Прилагаемый 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 ...

enter image description here

. .. и экранную крышку Shtemp2 ...

enter image description here

Когда «TEMP1» набирается в ячейку A1 листа с кодом прилагается, вы получите это ...

enter image description here

... изменение ячейки A1 в «temp2», вы получите это. ..

enter image description here

Смежные вопросы