나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내

작성자:  

 수원사람 (poder99)

추천:  2
파일:     질문(7).png (4.8KB) 조회:  2235
제목:   VBA 콤마(쉼표) 구분으로 데이터 나누기
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007): 2010버전

* 아래줄에 질문을 작성하세요 >>

(첨부된 이미지와 참조)
질문. 콤마 구분으로 데이터를 나누고 싶습니다.
다만 [텍스트 나누기] 기능을 활용하면
[안녕,하,세요] -> [안녕] [하] [세요] 됩니다.

첫번째 콤마 기준으로 한번만 데이터를 나누고 싶습니다.
[안녕,하,세요] -> [안녕] [하,세요]

또한, 다른열이나 행으로 이동하지 않고 그 자리에서 나누길 원합니다.

감사합니다
 
[불량 게시물 신고]  
slgiSub 매크로1()

 Data = "안,녕,하세요"
 
 Dim index As Integer
 Dim length As Integer
  
 index = InStr(Data, ",")
 length = Len(Data)
 
 If index > 0 Then
     Debug.Print Left(Data, index - 1)
    Debug.Print Right(Data, length - index)
  End If

End Sub

참고하세요
06-26 (16:37)
삭제 ■신고
수원사람답변감사합니다^^
혹시 데이터가 A열에 있다고 가정하면 어떤식으로 변경을 해야할까요?
06-29 (14:48)
삭제 ■신고
slgiSub 매크로1()
'
' 매크로1 매크로
'



    Dim index As Integer
    Dim length As Integer
  
    For i = 1 To Sheets(1).UsedRange.Rows.Count

        Data = Sheets(1).Cells(i, "A").Value
        index = InStr(Data, ",")
        length = Len(Data)
 
        If index > 0 Then
            Sheets(1).Cells(i, "B").Value = Left(Data, index - 1)
            Sheets(1).Cells(i, "C").Value = Right(Data, length - index)
        Else
            Sheets(1).Cells(i, "B").Value = Data
        End If

    Next i

End Sub
06-29 (18:00)
삭제 ■신고
수원사람slgi님 정말 감사해요^^
즐거운 하루되세요!
06-30 (09:48)
삭제 ■신고
        
  

작성일 : 2020-06-26(09:39)
최종수정일 : 2020-06-26(09:39)