본문 바로가기
■ 칼퇴를 위한 VBA : 사례/- VBA for 엑셀

엑셀 VBA로 특정 셀 찾아서 값 변경하는 방법

by 포탈메이커 2023. 6. 26.

엑셀 VBA로 특정 셀 찾아서 값 변경하는 방법

엑셀 VBA를 사용하면 특정 셀을 찾아서 값을 변경하는 것이 가능합니다. 이 기능을 활용하면 엑셀작업을 더욱 빠르고 쉽게 할 수 있습니다.

이번 포스팅에서는 엑셀 VBA에서 특정 셀을 찾아 값을 변경하는 방법에 대해 설명해 드리겠습니다.

Range 객체

우선 VBA에서 가장 많이 사용하는 객체인 Range 객체에 대해 알아보겠습니다. Range 객체는 셀의 범위를 나타내며, 엑셀의 데이터를 다룰 때 매우 중요한 역할을 합니다.

Range객체의 가장 기본적인 사용 방법은 아래와 같습니다.

Range("A1").Value = 100

위의 코드는 셀 A1의 값을 100으로 변경하는 코드입니다. 이처럼 Range 객체를 사용하여 특정 셀의 값을 변경할 수 있습니다.


Find 메소드

특정 셀을 찾아서 값을 변경하기 위해서는 Find 메소드를 사용해야 합니다. Find 메소드는 Range 객체 내에서 특정 값을 가진 셀을 찾는 기능을 합니다. 아래는 Find 메소드의 기본 사용 방법입니다.

Cells.Find(
    What:="value to find",   ' 찾고자 하는 값
    After:=ActiveCell,       ' 이 셀 뒤에서부터 검색 시작
    LookIn:=xlValues,        ' 셀의 값을 기준으로 검색
    LookAt:=xlPart,          ' 부분 일치하는 내용도 찾음
    SearchOrder:=xlByRows,   ' 행을 따라서 검색
    SearchDirection:=xlNext, ' 다음 셀로 이동하며 검색
    MatchCase:=False         ' 대소문자 구분하지 않음
)
  • what : 찾을 값 입니다.
  • After : 찾을 범위의 시작 셀을 정합니다.
  • LookIn : 찾을 범위를 정합니다. xlValues는 값, xlFormulas는 수식, xlComments는 코멘트, xlValuesAndFormulas는 값과 수식을 모두 출력합니다.
  • LookAt : 찾는 방법입니다. xlWhole는 완전한 일치, xlPart는 일부 일치를 뜻합니다.
  • SearchOrder : 열 기준으로 찾을지, 행 기준으로 찾을지 설정합니다.
  • SearchDirection : 찾는 방향을 단방향 또는 양방향으로 설정합니다.
  • MatchCase : 대소문자를 구분할 것인지 설정합니다.

Find 메소드는 찾는 값이 없을 경우 Nothing을 반환합니다. 따라서 이를 예외 처리해 주어야 합니다.


예제

이제 Find 메소드를 사용한 예제 코드를 작성해 보겠습니다. 아래의 코드는 A열에서 "찾을 값"이라는 값을 가진 셀을 찾아 B열에 "변경 값"을 입력하는 예제입니다.

Sub changeValue()
    Dim foundCell As Range
    Dim replaceValue As Integer

    replaceValue = 10 ' 바꿀 값 설정
    Set foundCell = Cells.Find(What:="value to find", LookIn:=xlValues, LookAt:=xlPart)

    If Not foundCell Is Nothing Then ' 찾은 값이 있다면
        foundCell.Offset(0, 1).Value = replaceValue ' 찾은 셀의 바로 오른쪽 셀에 바꿀 값을 입력
    End If
End Sub

위 코드에서는 ReplaceValue 변수에 변경할 값을 입력하고, FoundCell 변수에 Find 메소드의 결과를 저장합니다. FoundCell 변수에 값이 있을 경우, 즉 찾는 값이 존재할 경우, 해당 셀에서 한 열 옆인 B열에 ReplaceValue 변수에 저장된 값을 입력합니다. 이를 통해 특정 셀의 값을 빠르게 변경할 수 있습니다.


마치며

이번 포스팅에서는 엑셀 VBA를 사용하여 특정 셀을 찾아 값을 변경하는 방법에 대해 알아보았습니다. Find 메소드를 활용하면 데이터를 더욱 빠르게 처리할 수 있으므로, 엑셀 작업에 활용해 보시길 바랍니다.

 

포스팅이 도움이 되셨다면 구독, 공감, 댓글 부탁드려요!

행복한 하루 되세요!