2013-02-10 4 views
0

분명히 내 코드에 아직 필요한 루프가 없지만 3 행에서 Range ("b3 : gs3") 루프를 만들고 다음 재귀 방식으로 업데이트하고 싶습니다. :VBA에서 동적 범위 만들기

Range("b3:gs3") 
Range("b6:gs6") 
Range("b9:gs9") 
. 
. 
. 
Range("b720:gs720") 

루프를 코딩 할 수는 있지만 범위 값의 변경을 코딩하는 데 어려움이 있습니다.

도움을 많이 주시면 감사하겠습니다.

Sub Box() 

    Dim curCell3 As Range 

    For Each curCell3 In Sheets("Sheet 2").Range("b3:gs3").Cells 'This is the problem 

    ActiveWorkbook.Sheets("6").Activate 
    Range("B1").Select 

    Do While ActiveCell.Value <> curCell3.Value 
     ActiveCell.Offset(0, 1).Select 
    Loop 

      ActiveCell.Offset(44, 0).Select 
      ActiveCell.Copy 
      ActiveWorkbook.Sheets("Sheet 2").Activate 
      curCell3.Select 
      ActiveCell.Offset(1, 0).Select 
      ActiveCell.PasteSpecial Paste:=xlPasteValues 

    Next curCell3 

ActiveWorkbook.Sheets("6").Activate 
Rows("3:3").Delete 
ActiveCell.Offset(2, -199).Select 

End Sub 
+0

그것은 당신이 결국 무엇을 달성하고자 불분명 .... –

+0

나는 범위를 코딩하는 방법을 알고 싶어요. 행을 동일하게 유지하면서도 열을 변경하고 싶습니다. 예를 들어 range (x, y) (여기서 x = b3 및 y = gs3 인 경우)는 x1 = b6, y1 = gs6, x2 = b9, y2 = gs9를 반환하는 다음 루프를 반환합니다. on – user2059128

답변

0
Sub Box() 

    Dim curCell3 As Range 
    Dim rw As Long, f As Range, rngSrch As Range 

    Set rngSrch = ActiveWorkbook.Sheets("6").UsedRange.Columns(2) 

    For rw = 3 To 720 Step 3 

     For Each curCell3 In Sheets("Sheet 2"). _ 
      Range("b" & rw & ":gs" & rw).Cells 

      Set f = rngSrch.Find(curCell3.Value, , xlValues, xlWhole) 
      If Not f Is Nothing Then 
       curCell3.Offset(0, 1).Value = f.Offset(44, 0).Value 
      End If 

     Next curCell3 

    Next rw 

End Sub 
+0

와우, 정말 놀라운 팀이에요. 너무 감사합니다 – user2059128