컴퓨터 공부/엑셀 & VBA

[엑셀vba] 셀에 엑셀 함수 입력해서 사용하기

도 박사 2020. 9. 13. 22:12
반응형

엑셀 vba를 이용해 셀에 함수 수식을 넣어보자.

 


1. 예시

B3 ~ E3의 합을  A3 셀에 입력하는 vba 코드를 작성하고 실행하면 10이 입력된다. 

하지만 C3 값이 변경된다면 A3도 변할까???

ㄴㄴ 변하지 않는다. A3에는 값이 들어갔기때문...

 

그래서 값대신 엑셀 함수 =SUM(range)를 입력해보자. 


2. 사용법

Sub SUM()

    Cells(3, "A") = "=SUM(B3:E3)"

End Sub

 ;;

 

그냥 문자열 입력하듯이 하면 끝 

 

넘 쉽군..

 

근데 범위가 변경되거나 변수를 사용해야 된다면???

 

 

Sub SUM()
    
    Dim x As Integer
    Dim y As Integer
    
    x = 3
    y = 3
    
    Cells(3, "A") = "=SUM(B" & x & ":E" & y & ")"

End Sub

 

뭔가 복잡해 보인다.. 

 

하지만 일반적인 문자열 이어붙이기랑 다를 바 없다.

 

여기서는 x, y 값을 이용해 행 값을 바꿔준다.

 

 

Sub SUM()
    
    Dim x As String
    Dim y As String
    
    x = "A1"
    y = "B2"
    
    Cells(3, "A") = "=SUM(" & x & ":" & y & ")"

End Sub

실행결과

 

행, 열을 둘 다 변수로 하고 코드를 실행하면 위와 같은 결과가 나타난다.


 

3. 엑셀 함수를 VBA에서 사용하고 싶을 때

 

Sub SUM()
    
    Cells(3, "A") = Application.WorksheetFunction.SUM(Range("B3:E3"))
    
End Sub

 

Application.WorksheetFunction.함수명(파라미터)

 

엑셀 시트에서 사용하는 함수를 쓸 수 있다. 

 

이건 수식이 아닌 결과 값만 셀에 입력된다.

 


 

반응형