2012-01-09 3 views
0

예를 들어 범위를 늘리는 좋은 방법은 무엇입니까? 예를 들어 Range B11 : G20으로 복사하여 두 번째 루프의 C10에 붙여 넣으려면 x가 필요합니다. 각 변수에는 서로 다른 증분이 있습니다. 나는 비주얼 베이직과 끔찍한 이니까VBA whats 루프 단위로 증가하는 방법

임 사용하여 엑셀 2010

어떤 도움에 감사드립니다.

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 

답변

3

당신은 오프셋 사용할 수 있습니다(). 예 : - 나는 복사 및 붙여 넣기를 변경

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

좋아, 내가 가진 :

p.Copy i 

같이 동일 또한

Set x = x.Offset(rowOffset, colOffset) 

당신은 범위를 복사 선택할 필요가 없습니다 루프에서 오프셋을 시도했지만 특정 페이지에서 멈추고 증가하지 않습니다. . ("PNA 물리적가 요약 데이터를 필요") x.Copy 시트를 수행 j.Select 를 선택 Selection.PasteSpecial 붙여 넣기 : = xlPasteAll, 작동 : = xlNone, SkipBlanks을 = _ 거짓, 트랜스 = 진정한 페이지 .Copy 제가 k.Copy E 민 = 민 - 1 x.Offset X = (10, 0) J = j.Offset (5, 0) i.Offset I = (5, 0) k = k.Offset (10, 0) e = e.Offset (5, 0) – user1139384

+0

정확히 "갇히다"는 의미입니까? 범위를 이동할 때 "Set"을 사용하지 않는다는 것을 알았습니다 : 필요합니다. –