파일명에 특수기호만 제거하는 방법이 궁금해요

VBA
작성자
나지
작성일
2023-07-14 11:32
조회
1920
엑셀버전 : 엑셀2019

운영체제 : 윈도우10

질문 요약 : 파일명에 특수기호만 제거하는 방법이 궁금해요

안녕하세요. 저는 현재 아래 그림과 같은 엑셀파일을

아래와 같은 매크로를 사용해서 파일을 분할저장하고 있는데요.

이 매크로를 실행하면, 제목이 같은 행만 추출해서 파일이 각각 저장됩니다.

예를 들어 이 파일의 매크로 결과물은, 그림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

 

신고
스크랩
공유
회원등급 : 5레벨
포인트 : 323 EP
총질문 : 13 개 (마감율 : 69%)
채택답변 : 1 개
전체 2

  • 2023-07-14 12:37

    @나지

    Function RemoveInvalidFilenameChars(ByVal text As String) As String
        Dim invalidChars As String
        invalidChars = "\/:*?""<>|"
     
        Dim i As Integer
        For i = 1 To Len(invalidChars)
            text = Replace(text, Mid(invalidChars, i, 1), "")
        Next i
     
        RemoveInvalidFilenameChars = text
    End Function

     


    • 2023-07-18 09:11

      @마법의손 님 앗, 확인이 늦어 죄송합니다. 보내주신 내용으로 잘 적용해보겠습니다! 감사합니다!


전체 18,532
번호 카테고리 제목 작성자 작성일 추천 조회
알림
[📚진짜쓰는 실무엑셀] IT/오피스 '1위' 베스트셀러! 엑셀 공부, 이 교재로 마스터하세요! (315)
오빠두엑셀 | 2022.02.03 | 추천 575 | 조회 609707
오빠두엑셀 2022.02.03 575 609707
공지사항 문서서식
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (197)
오빠두엑셀 | 2021.10.28 | 추천 310 | 조회 35541
오빠두엑셀 2021.10.28 310 35541
78582 함수/공식
New 조건 함수 의 관한 문의 엑셀파일첨부파일 (4) 답변완료
예쁜나야 | 15:46 | 추천 0 | 조회 36
예쁜나야 15:46 - 36
78580
New 날짜와 시간 분할 방법 알려 주세요 엑셀파일첨부파일 (1)
계양산 지기 | 15:14 | 추천 0 | 조회 25
계양산 지기 15:14 - 25
78575 VBA
New 엑셀 재고관리 프로그램 문의드립니다.. 첨부파일 (1)
SJ | 04:23 | 추천 0 | 조회 65
SJ 04:23 - 65
78570 대시보드
New 대시보드에 표 형식으로 표현도 가능한가요? 첨부파일 (2)
룰루랄라 | 2025.05.12 | 추천 0 | 조회 67
룰루랄라 2025.05.12 - 67
78569 함수/공식
New 서로 다른 양식의 견적서 엑셀 파일 한곳에 정리 하기 (5)
gh**** | 2025.05.12 | 추천 0 | 조회 96
gh**** 2025.05.12 - 96
78565 함수/공식
New 검색보고서 만들기 질문드립니다. 엑셀파일 (9) 답변완료
만식이햄 | 2025.05.12 | 추천 0 | 조회 82
만식이햄 2025.05.12 - 82
78563 VBA
New VBA 수정 부탁드립니다. ㅠ (3)
서비 | 2025.05.12 | 추천 0 | 조회 73
서비 2025.05.12 - 73
78560 함수/공식
New 어떻게 내용을 가져올수 있을지 고수님들의 해결방법들을 공유 받고 싶습니다!!.... 엑셀파일첨부파일 (2)
꾸르형 | 2025.05.12 | 추천 0 | 조회 43
꾸르형 2025.05.12 - 43
78559 파워쿼리/피벗
New 엑셀 자동화 질문 입니다... 엑셀파일 (2) 답변완료
안녕하세여11 | 2025.05.12 | 추천 0 | 조회 65
안녕하세여11 2025.05.12 - 65
78555 함수/공식
New 시트에서 원하는 열의 자료만 가져오고싶은데 아무리 해도 수식오류가 나서 도움을 구하고자 합니다 엑셀파일 (4) 답변완료
khs**** | 2025.05.12 | 추천 0 | 조회 41
khs**** 2025.05.12 - 41
78554 함수/공식
New 변동하는 절대참조값 적용 (6) 답변완료
화이또! | 2025.05.12 | 추천 0 | 조회 64
화이또! 2025.05.12 - 64
78553 대시보드
New 대시보드_슬라이서 자동으로 눌러지게 하는방법 첨부파일 (1)
검도림 | 2025.05.12 | 추천 0 | 조회 46
검도림 2025.05.12 - 46
78548 대시보드
New 어떤 엑셀을 적용해야하는 지 문의드립니다! (1)
룰루랄라 | 2025.05.11 | 추천 0 | 조회 64
룰루랄라 2025.05.11 - 64
78546 함수/공식
New 월별 매출액 자동입력할 수 있는 방법 또는 함수 궁금합니다! 엑셀파일 (2)
mmm1010 | 2025.05.11 | 추천 0 | 조회 84
mmm1010 2025.05.11 - 84
78544 함수/공식
New 중복값 제거 함수에 관하여 엑셀파일첨부파일 (1) 답변완료
김지훈(Derek) | 2025.05.11 | 추천 0 | 조회 74
김지훈(Derek) 2025.05.11 - 74
78543 함수/공식
New 데이터 추출 및 정렬관련 초보질문 엑셀파일첨부파일 (5) 답변완료
김지훈(Derek) | 2025.05.11 | 추천 0 | 조회 67
김지훈(Derek) 2025.05.11 - 67
78540 함수/공식
New 오빠두LIVE 219회 - 엑셀 '셀 병합' 자동화 보고서 만들기 오빠두엑셀님의 방법이 궁금합니다. 첨부파일
AURIC | 2025.05.10 | 추천 0 | 조회 57
AURIC 2025.05.10 - 57
78536 함수/공식
New 월별로 금액적용후 최종월에 차액을 가감 함수가 필요해요 엑셀파일 (1) 답변완료
낮은자 | 2025.05.10 | 추천 0 | 조회 62
낮은자 2025.05.10 - 62
78535 기능/도구
New 엑셀로 25x25 인쇄가 가능한가요? (1)
망나 | 2025.05.10 | 추천 0 | 조회 47
망나 2025.05.10 - 47
78534 파워쿼리/피벗
New 쿼리에 함수 적용한 열 추가 시 24:00:00 활용한 계산 함수 필요할 때. 첨부파일 (2) 답변완료
신노스케 | 2025.05.10 | 추천 0 | 조회 62
신노스케 2025.05.10 - 62
78531 차트/그래프
New 엑셀 차트 데이터테이블 엑셀파일첨부파일 (1)
| 2025.05.09 | 추천 0 | 조회 72
2025.05.09 - 72
78530 구글시트
New 구글 스프레드시트 함수 관련 질문입니다. 엑셀파일첨부파일 (2)
동그이 | 2025.05.09 | 추천 0 | 조회 61
동그이 2025.05.09 - 61
78528 구글시트
New 구글 스프레드시트를 외부 엑셀 파일과 연동하는 방법이 궁금합니다. (3)
머우터덩 | 2025.05.09 | 추천 0 | 조회 65
머우터덩 2025.05.09 - 65
78525 문서서식
New 업무가 진행이 안 될 정도로, 해당 파일이 느립니다! 엑셀파일 (2)
빌스택스 | 2025.05.09 | 추천 0 | 조회 90
빌스택스 2025.05.09 - 90
78520 기능/도구
New 하이퍼링크 명칭 해제 (1)
min | 2025.05.09 | 추천 0 | 조회 49
min 2025.05.09 - 49
78518 피벗테이블
New 피벗테이블 관련 화살표 질문 첨부파일
이모비니 | 2025.05.09 | 추천 0 | 조회 47
이모비니 2025.05.09 - 47
78516 함수/공식
New 호봉산정 엑셀 문의드립니다. 엑셀파일첨부파일 (2) 답변완료
아르카디안 | 2025.05.08 | 추천 0 | 조회 55
아르카디안 2025.05.08 - 55
78515 함수/공식
New 엑셀 질문 드립니다.ㅠ.ㅠ 첨부파일 (1)
숲의사제 | 2025.05.08 | 추천 0 | 조회 52
숲의사제 2025.05.08 - 52
78511 함수/공식
New 입사일자로 부터 매년 알림 (2)
국빱 | 2025.05.08 | 추천 0 | 조회 66
국빱 2025.05.08 - 66
78510 문서서식
New 조건부 서식 적용 문의 엑셀파일첨부파일 (2) 답변완료
장수벌레 | 2025.05.08 | 추천 0 | 조회 99
장수벌레 2025.05.08 - 99