파일명에 특수기호만 제거하는 방법이 궁금해요
VBA
작성자
나지
작성일
2023-07-14 11:32
조회
1920
안녕하세요. 저는 현재 아래 그림과 같은 엑셀파일을
아래와 같은 매크로를 사용해서 파일을 분할저장하고 있는데요.
이 매크로를 실행하면, 제목이 같은 행만 추출해서 파일이 각각 저장됩니다.
예를 들어 이 파일의 매크로 결과물은, 그림1.XLSX / 사진1.XLSX / 책1.XLSX / 책393.XLSX 이런 식으로 파일 4개가 생성되고,
그림1.XLSX 을 열면 고구마와 감자가 포함된 행만 들어가 있는거죠.
그런데 이 제목셀에 특수기호가 포함되는 경우가 문제인데요.
파일명 = 제목셀이 되기 때문에 파일명에는 특수기호가 들어가면
파일 저장이 되지 않고 매크로가 멈추게 됩니다.
어떻게 하면 개선해볼 수 있을지 궁금합니다. ㅠㅠ
EXTRACTLETTER 함수를 활용해보려고 했는데 실력 부족으로 구현이 어렵네요...
약간의 힌트라도 던져주시면 많은 도움이 될 것 같습니다.
감사합니다.
Sub 파일분할저장() Dim rng As Range, drng As Range Dim d As Object, c As Variant, lr As Long, i As Long Dim keys() As String Dim strPath As String, strName As String Dim intChoice As Integer '하나의 파일만 열도록 지정 Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False intChoice = Application.FileDialog(msoFileDialogOpen).Show If intChoice <> 0 Then strPath = Application.FileDialog(msoFileDialogOpen).SelectedItems(1) Else: Exit Sub End If Workbooks.Open strPath With ActiveWorkbook strName = Left(.Name, InStrRev(.Name, ".") - 1) strPath = .Path & Application.PathSeparator End With With ActiveSheet On Error Resume Next Set rng = Application.InputBox(Prompt:="기준열을 선택하시오", Type:=8) Set drng = Application.InputBox(Prompt:="데이터의 시작행을 선택하시오", Type:=8) Set d = CreateObject("Scripting.Dictionary") lr = .Cells(Rows.Count, rng.Column).End(xlUp).Row c = .Range(.Cells(drng.Row, rng.Column), .Cells(lr, rng.Column)) '시작 행 번호 For i = 1 To UBound(c, 1) d(c(i, 1)) = 1 Next i ReDim keys(UBound(d.keys)) As String c = d.keys For i = LBound(c) To UBound(c) keys(i) = CStr(c(i)) Next i If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData .Range("A1").CurrentRegion.Select For i = LBound(keys) To UBound(keys) Selection.AutoFilter Field:=rng.Column, Criteria1:="=" & keys(i) .Range("A1").CurrentRegion.Select Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Workbooks.Add ActiveSheet.Paste Application.CutCopyMode = False Columns("A:M").Select Columns("A:M").EntireColumn.AutoFit Range("A1").Select ActiveWorkbook.SaveAs fileName:=strPath & strName & "_" & keys(i) & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False ActiveWorkbook.Close SaveChanges:=False Next i If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData End With ActiveWorkbook.Close SaveChanges:=False End Sub
전체 18,532
번호 | 카테고리 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
[📚진짜쓰는 실무엑셀] IT/오피스 '1위' 베스트셀러! 엑셀 공부, 이 교재로 마스터하세요! (315)
![]() ![]() |
![]() ![]() |
2022.02.03 | 575 | 609707 | ||
공지사항 | 문서서식 |
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐
(197)
오빠두엑셀
|
2021.10.28
|
추천 310
|
조회 35541
|
![]() ![]() |
2021.10.28 | 310 | 35541 |
78582 | 함수/공식 |
New 조건 함수 의 관한 문의
![]() ![]() ![]() |
![]() |
15:46 | - | 36 |
78580 |
New 날짜와 시간 분할 방법 알려 주세요
![]() ![]() ![]() |
![]() |
15:14 | - | 25 | |
78575 | VBA |
New 엑셀 재고관리 프로그램 문의드립니다..
![]() ![]() |
![]() |
04:23 | - | 65 |
78570 | 대시보드 |
New 대시보드에 표 형식으로 표현도 가능한가요?
![]() ![]() |
![]() |
2025.05.12 | - | 67 |
78569 | 함수/공식 |
New 서로 다른 양식의 견적서 엑셀 파일 한곳에 정리 하기
(5)
![]() |
![]() |
2025.05.12 | - | 96 |
78565 | 함수/공식 |
New 검색보고서 만들기 질문드립니다.
![]() ![]() |
![]() |
2025.05.12 | - | 82 |
78563 | VBA |
New VBA 수정 부탁드립니다. ㅠ
(3)
![]() |
![]() |
2025.05.12 | - | 73 |
78560 | 함수/공식 |
New 어떻게 내용을 가져올수 있을지 고수님들의 해결방법들을 공유 받고 싶습니다!!....
![]() ![]() ![]() |
![]() |
2025.05.12 | - | 43 |
78559 | 파워쿼리/피벗 |
New 엑셀 자동화 질문 입니다...
![]() ![]() |
![]() |
2025.05.12 | - | 65 |
78555 | 함수/공식 |
New 시트에서 원하는 열의 자료만 가져오고싶은데 아무리 해도 수식오류가 나서 도움을 구하고자 합니다
![]() ![]() |
![]() |
2025.05.12 | - | 41 |
78554 | 함수/공식 |
New 변동하는 절대참조값 적용
(6)
답변완료
![]() |
![]() |
2025.05.12 | - | 64 |
78553 | 대시보드 |
New 대시보드_슬라이서 자동으로 눌러지게 하는방법
![]() ![]() |
![]() |
2025.05.12 | - | 46 |
78548 | 대시보드 |
New 어떤 엑셀을 적용해야하는 지 문의드립니다!
(1)
![]() |
![]() |
2025.05.11 | - | 64 |
78546 | 함수/공식 |
New 월별 매출액 자동입력할 수 있는 방법 또는 함수 궁금합니다!
![]() ![]() |
![]() |
2025.05.11 | - | 84 |
78544 | 함수/공식 |
New 중복값 제거 함수에 관하여
![]() ![]() ![]() |
![]() |
2025.05.11 | - | 74 |
78543 | 함수/공식 |
New 데이터 추출 및 정렬관련 초보질문
![]() ![]() ![]() |
![]() |
2025.05.11 | - | 67 |
78540 | 함수/공식 |
New 오빠두LIVE 219회 - 엑셀 '셀 병합' 자동화 보고서 만들기 오빠두엑셀님의 방법이 궁금합니다.
![]() ![]() |
![]() |
2025.05.10 | - | 57 |
78536 | 함수/공식 |
New 월별로 금액적용후 최종월에 차액을 가감 함수가 필요해요
![]() ![]() |
![]() |
2025.05.10 | - | 62 |
78535 | 기능/도구 |
New 엑셀로 25x25 인쇄가 가능한가요?
(1)
![]() |
![]() |
2025.05.10 | - | 47 |
78534 | 파워쿼리/피벗 |
New 쿼리에 함수 적용한 열 추가 시 24:00:00 활용한 계산 함수 필요할 때.
![]() ![]() |
![]() |
2025.05.10 | - | 62 |
78531 | 차트/그래프 |
New 엑셀 차트 데이터테이블
![]() ![]() ![]() |
![]() |
2025.05.09 | - | 72 |
78530 | 구글시트 |
New 구글 스프레드시트 함수 관련 질문입니다.
![]() ![]() ![]() |
![]() |
2025.05.09 | - | 61 |
78528 | 구글시트 |
New 구글 스프레드시트를 외부 엑셀 파일과 연동하는 방법이 궁금합니다.
(3)
![]() |
![]() |
2025.05.09 | - | 65 |
78525 | 문서서식 |
New 업무가 진행이 안 될 정도로, 해당 파일이 느립니다!
![]() ![]() |
![]() |
2025.05.09 | - | 90 |
78520 | 기능/도구 |
New 하이퍼링크 명칭 해제
(1)
![]() |
![]() |
2025.05.09 | - | 49 |
78518 | 피벗테이블 |
New 피벗테이블 관련 화살표 질문
![]() ![]() |
![]() |
2025.05.09 | - | 47 |
78516 | 함수/공식 |
New 호봉산정 엑셀 문의드립니다.
![]() ![]() ![]() |
![]() |
2025.05.08 | - | 55 |
78515 | 함수/공식 |
New 엑셀 질문 드립니다.ㅠ.ㅠ
![]() ![]() |
![]() |
2025.05.08 | - | 52 |
78511 | 함수/공식 |
New 입사일자로 부터 매년 알림
(2)
![]() |
![]() |
2025.05.08 | - | 66 |
78510 | 문서서식 |
New 조건부 서식 적용 문의
![]() ![]() ![]() |
![]() |
2025.05.08 | - | 99 |
@나지 님
@마법의손 님 앗, 확인이 늦어 죄송합니다. 보내주신 내용으로 잘 적용해보겠습니다! 감사합니다!