2011-08-18 5 views
0

나는 30 개의 워크 시트가있는 Excel 통합 문서를 가지고 있습니다. 각각의 시트는 지금은 "나는"열 (새 열이 J 될 것입니다) 다음에 열을 삽입 할이Excel의 동적 논리

enter image description here

같은 것을보고 값은 쿠폰이

같은 어떤 것을해야한다 2.000 (4-7 행) 새로운 열 J의 값은 = i4-i5이어야합니다 (모든 J4,5,6,7에 대해) 이것은 각 쿠폰에 대해 반복해야합니다. 매크로 기록을 시도했지만 도움이되지 않았습니다. 동적으로 처리하려면 샘플 로직을 제공하십시오. 미리 감사드립니다.

+0

코드가 있습니까? 사진이 표시되지 않습니다. –

+0

@TIM .... 죄송합니다 .... 이미지가 팝업되지 않도록 잘못했는지 알지 못합니다 .... 다시로드하려고 시도합니다. 확인 가능한 경우 알려주세요. –

답변

2

당신의 설명에서, 당신이 찾고있는 것처럼 들렸습니다. 그렇지 않은 경우 알려 주시기 바랍니다.

Sub AddNewColumn() 
    Dim sColumnToIns, sCouponField, sCouponGroup, _ 
     sFormula, sCell1, sCell2, sMarketValueField, sColumnToInsHeader, sTopCellOfData 
    Dim rData As Range 
    Dim rRng As Range 
    Dim rCell As Range 
    Dim oSh As Worksheet 

    'Make sure you change the sheet to reflect 
    'the object name of your sheet. 
    Set oSh = Sheet2 
    sColumnToIns = "J" 
    sColumnToInsHeader = "New Column" 
    sCouponField = "B" 
    sMarketValueField = "I" 
    sTopCellOfData = "A4" 


    'Insert a new column 
    Sheet1.Range(sColumnToIns & ":" & sColumnToIns).Insert xlShiftToRight 

    'Get lowest cell in used range 
    Set rRng = oSh.UsedRange.Cells(oSh.UsedRange.Rows.Count, oSh.UsedRange.Columns.Count) 
    Set rData = oSh.Range(sTopCellOfData, rRng) 

    'Set the header text 
    rData.Range(sColumnToIns & "1").Offset(-1).Value = sColumnToInsHeader 

    'Go through the entire data set. Whenever the value in the 'Coupon' 
    'column changes, put a formula the subtracts the top market value 
    'from the next market value down. 
    sCouponGroup = "" 
    For Each rCell In rData.Columns(sCouponField).Cells 
     If sCouponGroup <> rCell.Value Then 
      sCouponGroup = rCell.Value 
      sCell1 = rCell.EntireRow.Columns(sMarketValueField).Address 
      sCell2 = rCell.EntireRow.Columns(sMarketValueField).Offset(1).Address 
      sFormula = "=" & sCell1 & "-" & sCell2 
     End If 

     rCell.EntireRow.Columns(sColumnToIns).Formula = sFormula 
    Next 

End Sub 
+0

트랜지스터 덕분에 ..... 당신은 절반 정도였습니다 ....하지만 좋은 샘플을주었습니다 ... 나는 이것을 시도 할 것입니다 –

+0

언제든지! 더 이상 도움이 필요하면 알려주십시오. – transistor1