반응형
엑셀 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.함수명(파라미터)
엑셀 시트에서 사용하는 함수를 쓸 수 있다.
이건 수식이 아닌 결과 값만 셀에 입력된다.
반응형
'컴퓨터 공부 > 엑셀 & VBA' 카테고리의 다른 글
[엑셀vba] 시트를 완전히 숨겨보자(숨기기 취소에도 안보임) (0) | 2020.10.23 |
---|---|
[엑셀] 엑셀 2016으로 저장된 xlsx 파일을 엑셀 2007 에서 열어보자 (0) | 2020.10.20 |
[엑셀vba] .SaveAS 메서드 (0) | 2020.09.11 |
[엑셀vba] 모듈이 아니라 변수나 프로시저가 필요합니다. (0) | 2020.09.09 |
[엑셀vba] Module 이름을 바꿔보자 (0) | 2020.09.09 |