2016-08-05 2 views
0

마지막 행에 sum 공식을 입력하는 방법을 알려주시겠습니까? 마지막 행의 값의 합계를 원하지 않습니다. 나는 아래의 코드로 당신을 설명하려고 노력했다.vba를 통해 lastrow에 sum 공식을 입력하는 방법

Sub Sum_Formula_In_Lastrow() 
lr = Cells(Rows.Count, 2).End(xlUp).Row 
lc = Cells(1, 1).End(xlToRight).Column 
For x = 4 To lc 
Cells(lr, x).Select 
Selection.Formula = "=sum(Range(Cells(x, 2), Cells(lr, x)))" 
Next x 
End Sub 

위의 코드가 잘못되었다는 것을 알려주세요. 그러나 제 요구 사항을 설명하려고합니다.

답변

1

변수 및 범위 객체는 따옴표 밖에 있고 &과 연결해야합니다. 범위 기본값은 .Value입니다. 주소가 아닌 값을 넣고 싶습니다.

Sub Sum_Formula_In_Lastrow() 
lr = Cells(Rows.Count, 2).End(xlUp).Row 
lc = Cells(1, 1).End(xlToRight).Column 
For x = 4 To lc 
    Cells(lr, x).Formula = "=SUM(" & Range(Cells(2, x), Cells(lr - 1, x)).Address & ")" 
Next x 
End Sub 

물론 이것은 R1C1이 설계 한 것입니다. 당신은 반복하는없이 전체 행을 입력 할 수 있습니다 :

Sub Sum_Formula_In_Lastrow() 
lr = Cells(Rows.Count, 2).End(xlUp).Row 
lc = Cells(1, 1).End(xlToRight).Column 
Range(Cells(lr, 4),Cells(lr,lc)).FormulaR1C1 = "=SUM(R2C:R" & lr -1 & "C)" 

End Sub 

마지막 주 당신이 그것을 현재 시트의 경우에도 시트에 범위를 한정하고자합니다. 시트가 변경 될 경우를 대비해서.

Sub Sum_Formula_In_Lastrow() 
With ActiveSheet 
    lr = .Cells(.Rows.Count, 2).End(xlUp).Row 
    lc = .Cells(1, 1).End(xlToRight).Column 
    .Range(.Cells(lr, 4),.Cells(lr,lc)).FormulaR1C1 = "=SUM(R2C:R" & lr -1 & "C)" 
End With 
End Sub 
+0

@Scott Craner - 첫 번째 코드는 성공적으로 필요한 셀에 수식을 가하고 있지만 –

+0

@Scott Craner를 작동하지 - 감사에게, 두 번째 코드는 내 요구 사항에 따라 작업 –

+0

@saikrishna 첫 번째 코드로 문제를 해결 많이. 답변 옆에있는 체크 표시를 클릭하여 올바른 것으로 표시하십시오. –

관련 문제