2017-02-07 3 views
0

This is what my excel sheet looks likeКак поставить цикл на ряде

Поэтому в основном я пытаюсь выбрать кучу клеток, переставлять их затем перейти к следующим трем.

Это то, что код будет выглядеть для одного набора. У меня много, и для каждого из них вручную потребуется слишком много времени, так как я могу запустить цикл на этом, чтобы предположить, что первые три строки перенести, а затем переместить на следующий? Теперь, если бы я взял диапазон энтерий и транспонировал его, он сделал бы отдельные столбцы для каждой мужской женщины и всего. То, что я пытаюсь сделать, - это перенести каждый и опубликовать их в одном столбце.

Range("B20:C21").Select 
Selection.Copy 
Range("D19").Select 
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ 
    False, Transpose:=True 
Range("B22:C23").Select 
Application.CutCopyMode = False 
Selection.Copy 
Range("D21").Select 
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ 
    False, Transpose:=True 
+1

Почему вы копируете 'B20: C21' а затем 'B22: C23'? Почему бы не «B20: C23»? – Jeremy

+0

@Jeremy Потому что в столбце B, что ive получил, является Male, Females then Totals для одной категории, а затем M F T снова для следующей категории. То, что я пытаюсь сделать, состоит в том, чтобы иметь возможность суммировать, чтобы у меня были мужчины в одном ряду и женщины и т. Д. Если бы я взял весь диапазон, он бы транспонировал его так: Мужчины Женщины Всего Мужчины Женщины Всего и т. Д. Надеюсь, что имеет смысл –

+0

Можете ли вы опубликовать скриншот того, как он будет выглядеть: я не могу представить, что вы говорите – Jeremy

ответ

0

Непрошеный, но должен работать или, по крайней мере, быть достаточно простым, чтобы дать вам хорошую отправную точку.

sub doit 
    dim src as range, dest as range 
    set src = range("b20:c21") 
    set dest = range("d19") 
    do 
     src.copy 
     dest.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ 
      False, Transpose:=True 
     set src = src.offset(2,0) 
     set dest = dest.offset(2,0) 
    loop until src.row > 200 'update according to your needs 
end sub 
0

Просто, прежде чем я дать решение, я хочу быть уверен, что это то, что вы ищете, исходя от Вашего объяснения выше:

enter image description here