2016-12-16 4 views
-2
Sub Worksheet_Change() 

Set Target = ActiveCell 
Application.ScreenUpdating = False 

[A1:F20].Copy 
[H4].PasteSpecial Paste:=xlPasteValues, Transpose:=True 

[A22:F42].Copy 
[H24].PasteSpecial Paste:=xlPasteValues, Transpose:=True 

[A44:F64].Copy 
[H46].PasteSpecial Paste:=xlPasteValues, Transpose:=True 

[A66:F86].Copy 
[H68].PasteSpecial Paste:=xlPasteValues, Transpose:=True 

[A88:F108].Copy 
[H90].PasteSpecial Paste:=xlPasteValues, Transpose:=True 

[A110:F130].Copy 
[H112].PasteSpecial Paste:=xlPasteValues, Transpose:=True 

[A132:F152].Copy 
[H134].PasteSpecial Paste:=xlPasteValues, Transpose:=True 

[A154:F174].Copy 
[H156].PasteSpecial Paste:=xlPasteValues, Transpose:=True 

[A176:F196].Copy 
[H178].PasteSpecial Paste:=xlPasteValues, Transpose:=True 

[A198:F218].Copy[H200].PasteSpecial Paste:=xlPasteValues, Transpose:=True 

Application.CutCopyMode = False 
Target.Select 

End Sub 
+0

Отформатируйте код углубленного его четыре пространства; он будет отображаться в вашем сообщении как код, а не как часть текста. Кроме того, ваш вопрос относится к циклу, но я не вижу никакого цикла в коде? –

+0

Я хочу применить цикл, где я написали copy and pasteSpecial повторно –

ответ

1

вы можете попробовать это:

Application.ScreenUpdating = False 

[A1:F20].Copy 
[H4].PasteSpecial Paste:=xlPasteValues, Transpose:=True 

With [A22:F42] 
    For i = 1 To 9 
     .Offset((i - 1) * 22).Copy 
     [H24].Offset((i - 1) * 22).PasteSpecial Paste:=xlPasteValues, Transpose:=True 
     Application.CutCopyMode = False 
    Next i 
End With 

Application.ScreenUpdating = True 
+0

Но что делать для n числа таблиц? –

+0

Добро пожаловать. Затем вы можете пометить asnwer как принято. Спасибо! Если вы хотите сделать это при каждом изменении рабочего листа, вы можете поместить этот код в поле «Частное подчинение Workbook_SheetChange (ByVal Sh As Object, ByVal Target As Range)» в поле «ThisWorkbook». Конечно, вы должны ссылаться на все диапазоны на объект «Sh», который вы можете легко сделать с помощью 1) обертывания всего кода в блоке 'With Sh .... End With' и 2) добавления точки (' .') перед каждой открытой скобой ('' ''. – user3598756

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