엑셀 vba 특정 문자 포함 행 추출
엑셀 사용자들은 많은 양의 데이터를 다루어야 할 때가 많습니다. 때로는 특정 문자열을 포함하는 행을 뽑아내어야 할 때가 있습니다. 이러한 작업을 수동으로 처리하기에는 많은 시간이 소요되며, 오류가 발생할 수 있습니다.
그러나 VBA (Visual Basic for Applications)를 이용하면 이러한 작업을 자동으로 처리할 수 있습니다. VBA를 이용하면 엑셀의 기능을 확장하고 자신이 원하는 작업을 수행할 수 있습니다.
이번 기사에서는 엑셀 VBA를 이용하여 특정 문자열을 포함하는 행을 추출하는 방법을 알아보도록 하겠습니다.
1. VBA 코드 작성하기
먼저 VBA 코드 에디터를 열어서 코드를 작성합니다. 다음 코드를 작성하면 됩니다.
“`
Sub extractRows()
Dim searchString As String
Dim searchRange As Range, foundRange As Range, extractRange As Range
Dim i As Long
‘ 검색어 입력
searchString = InputBox(“검색어를 입력하세요.”, “검색”)
‘ 검색 범위 선택
Set searchRange = Application.Selection
‘ 검색 범위에서 검색어를 찾음
Set foundRange = searchRange.Find(searchString, LookIn:=xlValues, LookAt:=xlPart)
‘ 검색 결과가 없으면 메시지를 출력하고 종료
If foundRange Is Nothing Then
MsgBox “검색 결과가 없습니다.”
Exit Sub
End If
‘ 추출 범위 선택
Set extractRange = foundRange
While Not extractRange.Rows(1).EntireRow.Hidden
Set extractRange = extractRange.Offset(-1)
If extractRange.Row = 1 Then Exit While
Wend
‘ 추출 범위에서 추출할 행 선택
Do Until extractRange.Rows(extractRange.Rows.Count).EntireRow.Hidden
Set extractRange = extractRange.Offset(1)
Loop
‘ 추출된 행 복사
extractRange.EntireRow.Copy
‘ 다른 시트에 붙여넣기
Sheets.Add After:=Sheets(Sheets.Count)
Cells(1, 1).PasteSpecial
End Sub
“`
2. VBA 코드 실행하기
작성한 코드를 실행하려면 다음과 같은 방법을 사용합니다.
– 액세스 키: [Alt] + [F11]
– 코드 창에서 원하는 시트 선택
– 코드 창에서 실행할 서브 루틴 선택
– 키보드 단축키: [F5]
3. VBA 코드 사용 예시
다음은 작성한 코드를 사용하여 특정 문자열을 포함하는 행을 추출하는 방법을 알아보겠습니다.
1) 예시 데이터 생성
먼저, 예시로 사용할 데이터를 생성합니다.
“`
기본 정보 | 학교 정보 | 학생 정보
————— | ——— | ————-
학년 | 학교 | 이름
1 | AA고 | 홍길동
2 | BB고 | 이순신
3 | CC고 | 강감찬
“`
2) 검색어 입력
검색어로 “AA”를 입력합니다.
3) 결과 확인
검색어를 포함하는 행이 추출되고, 새로운 시트에 붙여넣어집니다.
FAQ
Q. 코드에 수정할 부분이 있나요?
A. 코드에서 수정할 부분은 없습니다. 다만, 검색 범위를 임의로 지정하고 싶은 경우, 코드에서 `Set searchRange = Application.Selection` 부분을 수정하면 됩니다.
Q. 검색어를 대/소문자 구분없이 찾을 수 있나요?
A. Yes, 가능합니다. 코드에서 `LookAt:=xlPart`를 `LookAt:=xlPart, MatchCase:=False`로 수정하면 됩니다.
Q. 검색 결과가 여러 개인 경우에도 동작하나요?
A. Yes, 되지만, 본 예제에서는 최초 검색 결과만 추출합니다. 다음과 같이 수정하면 전체 검색 결과를 추출할 수 있습니다.
“`
Do
‘ 추출 범위 선택
Set extractRange = foundRange
While Not extractRange.Rows(1).EntireRow.Hidden
Set extractRange = extractRange.Offset(-1)
If extractRange.Row = 1 Then Exit While
Wend
‘ 추출 범위에서 추출할 행 선택
Do Until extractRange.Rows(extractRange.Rows.Count).EntireRow.Hidden
Set extractRange = extractRange.Offset(1)
Loop
‘ 추출된 행 복사
extractRange.EntireRow.Copy
‘ 다른 시트에 붙여넣기
Sheets.Add After:=Sheets(Sheets.Count)
Cells(1, 1).PasteSpecial
‘ 다음 검색 결과 찾기
Set foundRange = searchRange.FindNext(foundRange)
‘ 검색이 끝났으면 종료
If foundRange.Address = firstAddress Then Exit Do
Loop
“`
Q. 검색어를 부분 문자열이 아닌 전체 문자열로 찾을 수 있나요?
A. Yes, 가능합니다. 코드에서 `LookAt:=xlPart`를 `LookAt:=xlWhole`로 수정하면 됩니다.
사용자가 검색하는 키워드:
“엑셀 vba 특정 문자 포함 행 추출” 관련 동영상 보기
[엑셀 실무]행의 어느 셀이라도 특정 문자를 포함 또는 일치하면 그 행 숨기기
더보기: tiemthuysinh.com
엑셀 vba 특정 문자 포함 행 추출 관련 이미지
엑셀 vba 특정 문자 포함 행 추출 주제와 관련된 45개의 이미지를 찾았습니다.



여기에서 엑셀 vba 특정 문자 포함 행 추출와 관련된 추가 정보를 볼 수 있습니다.
더보기: 당신을 위한 최신 기사 618개
따라서 엑셀 vba 특정 문자 포함 행 추출 주제에 대한 기사 읽기를 마쳤습니다. 이 기사가 유용하다고 생각되면 다른 사람들과 공유하십시오. 매우 감사합니다.
원천: Top 88 엑셀 vba 특정 문자 포함 행 추출