VBA, что является лучшим способом увеличения цикла - PullRequest
0 голосов
/ 09 января 2012

Какой будет хороший способ увеличить каждый из моих диапазонов, например, мне нужно x, чтобы скопировать диапазон B11: в G20 и вставить его в C10 для второго цикла.Каждая переменная имеет разные приращения.

Я использую Excel 2010

Любая помощь приветствуется, потому что я ужасен с Visual Basic.

Dim i As Range, j As Range, k As Range
Dim x As Range, y As Range
Dim Num As Integer

Num = 94

Set x = Sheets("Sum Data").Range("B1:G10")
Set j = Sheets("PNA Physical Needs Summary Data").Range("C4")
Set i = Sheets("PNA Physical Needs Summary Data").Range("B4:B9")
Set k = Sheets("Sum Data").Range("A1")
Set p = Sheets("PNA Physical Needs Summary Data").Range("P3:P8")
Set e = Sheets("PNA Physical Needs Summary Data").Range("A4:A9")

Do
    Sheets("Sum Data").Select
    x.Copy
    Sheets("PNA Physical Needs Summary Data").Select
    j.Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=True

    p.Select
    Selection.Copy
    i.Select
    ActiveSheet.Paste

    Sheets("Sum Data").Select
    k.Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("PNA Physical Needs Summary Data").Select
    e.Activate
    ActiveSheet.Paste

    Num = Num - 1

 Loop Until Num = 0

1 Ответ

3 голосов
/ 09 января 2012

Вы можете использовать Смещение (). Например:

Set x = x.Offset(rowOffset, colOffset)

Также - вам не нужно выбирать для копирования диапазоны:

p.Copy i

совпадает с:

p.Select     
Selection.Copy     
i.Select     
ActiveSheet.Paste
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...