Ralace 이용해서 값 찾아 변경하기
현재 시트에서 원하는 값을 찾아서 변경하는 VBA 코드입니다.
문자열을 찾아서 변경할 때에는 찾는 문자열은 있는데, 변경할 문자열은 공백인 경우도 있습니다.
그리고 찾는 문자열과 변경할 문자열이 맞는지 확인하는 것도 필요합니다.
IF 함수와 Msgbox 확인을 통해서 조건에 맞으면 진행하고 조건에 맞지 않으면 취소하는 로직도 고려했습니다.
첨부된 엑셀에서 Alt + F11 을 누르고 [모듈] Module2 를 선택하면 코드가 나옵니다.
Replace 를 블럭 설정한 다음 F1 (도움말) 키를 누르면 함수에 대한 설명이 나옵니다.
특정한 열을 기준으로 찾고자 한다면 For Each sht In ThisWorkbook.Worksheets .... Next sht 문 대신에
한줄로
Range([C2], Cells(Rows.Count, "C").End(3)).Replace What:=FindText, Replacement:=replace_Text
Sub replace_Text()
Dim sht As Worksheet
Dim FindText As String
Dim replace_Text As String
FindText = InputBox("찾을 문자열 입력") '//찾을 문자열을 변수에 넣음
If FindText = "" Then Exit Sub
replace_Text = InputBox("[" & FindText & "] 을 바꿀 문자열을 입력하세요")
If replace_Text = "" Then
If MsgBox("바꿀 내용이 공백이면 찾을 내용을 삭제합니다" & vbCr & "수정하시겠습니까?", vbYesNo) = vbNo Then Exit Sub
Else
If MsgBox("찾을 내용 : " & FindText & vbCr & "바꿀 내용 : " & replace_Text & vbCr & "변경하시겠습니까?", vbYesNo) = vbNo Then Exit Sub
End If
For Each sht In ThisWorkbook.Worksheets
sht.Cells.Replace What:=FindText, Replacement:=replace_Text
Next sht
MsgBox "변경완료 했습니다"
End Sub
'업무 능력 향상 > 엑셀 VBA 기초' 카테고리의 다른 글
엑셀 시트 숨기기 (0) | 2015.04.27 |
---|---|
[VBA기초] RemoveDuplicates 이용한 중복 제거 (2) | 2015.04.22 |
[VBA기초] 엑셀 특정 시트만 제외하고 모든 시트 삭제 (0) | 2015.04.19 |
[VBA기초] RGB 색상표 (0) | 2015.04.05 |
[VBA기초] 숫자 채우기 (0) | 2015.04.04 |