2012-06-07 2 views
0

Excel 목록을 삭제할 매크로를 작성하고 있습니다. 이름 목록을 가져 와서 이름을 삭제해야하므로 "John Smith"는 "Smith"가됩니다. 공백 다음에 텍스트를 삭제하는 방법을 알고 있지만 공백이 더 까다로워지기 전에. RIGHT("John Smith",LEN("John Smith")-FIND(" ","John Smith"))excel vba를 사용하여 공간 왼쪽에 텍스트를 삭제하십시오.

+0

안녕하세요, stackoverflow에 오신 것을 환영합니다 – Chronicide

+1

간단한 텍스트가 도움이 되었습니까? (귀하의 태그 VBS는 VBA이어야합니다) – Arnoldiusss

답변

0

+0

작품이지만 몇 가지 결함이있어, "존 스미스 주니어"와 같은 이름의 끝에 주니어와 사람들. 어떻게 그런 일에 탈출 원인을 추가 할 수 있습니까? – jardane

+0

매크로를 실행하면 Excel 기록을 지우는 경향이 있습니다. 이와 같이 무언가가 잘못 될 경우 대개 실행 취소 할 수 없습니다. 잠재적 인 버그/약점에 대해 작성한 vba를 테스트하고, 최악의 경우에 대비하여 Excel 통합 문서의 백업을 유지하십시오. 조심하지 않으면 많은 양의 데이터를 잃게됩니다. – Chronicide

+0

흠 ... 첫 단어 이외에는 모든 것을 원하니? 나는 그 일을하기 위해 변경된 서브로 나의 대답을 업데이트했다. – Chronicide

1

사용은 여기에 "rng_Names"라고 명명 된 범위의 모든 셀을 통해 루프와 마지막 단어를 제외하고 모두 제거하는 서브입니다. 뿐만 아니라,

Sub removeFirstWord() 
    For Each cl In Range("rng_Names") 
     cl.Value = Right(cl.Value, Len(cl.Value) - InStr(cl.Value, " ")) 
    Next cl 
End Sub 

업데이트 다음 하위 단지 첫 번째 단어를 제거하는 두 번째

:

Sub removeAllButLastWord() 
    For Each cl In Range("rng_Names") 
     cl.Value = Right(cl.Value, Len(cl.Value) - InStrRev(cl.Value, " ")) 
    Next cl 
End Sub 

업데이트

다음 하위 그냥 첫 번째 단어를 제거 문자열 "jr"이 존재하는 경우

Sub removeFirstWordAndJR() 
    For Each cl In Range("rng_Names") 
     cl.Value = Replace(Right(cl.Value, Len(cl.Value) - InStr(cl.Value, " ")), " Jr", "", 1, -1, vbTextCompare) 
    Next cl 
End Sub 
관련 문제