문자열에서 모든 공백 제거
문자열, 특히 전자 메일 주소의 공백을 모두 제거하기 위한 매크로를 만들었습니다.그러나 빈 공간의 약 95%만 제거하고 몇 개만 남깁니다.
내 코드:
Sub NoSpaces()
Dim w As Range
For Each w In Selection.Cells
w = Replace(w, " ", "")
Next
End Sub
제가 이 문제를 해결하기 위해 노력한 것은 다음과 같습니다.
공백이 코드 함수가 있는 공간임을 확인했습니다. 문자 32(공백)입니다.
대체 매크로와 함께 대체 매크로 사용
선행 및 후행 공백을 제거하기 위해 트림 기능을 활용하는 추가 매크로가 있어야 합니다.
깨지지 않는 공간을 테스트하기 위해 별도의 매크로를 만들었습니다(문자 160).
찾기 및 바꾸기 기능을 사용하여 공백을 검색하고 아무것도 없는 상태로 바꿉니다.작동 확인됨.
매크로를 실행할 때 셀을 하나만 선택합니다.Selection(선택)으로 인해 모든 셀을 선택하고 통과합니다.셀은 코드의 일부입니다.
몇 가지 예:
1 STAR MOVING @ ATT.NET
322 TRUCKING@GMAIL.COM
ALEZZZZ@AOL. COM.
여기에는 일반 공백만 포함되지만 건너뜁니다.
그냥 정규식을 사용합니다.
'Add a reference to Microsoft VBScript Regular Expressions 5.5
Public Function RemoveWhiteSpace(target As String) As String
With New RegExp
.Pattern = "\s"
.MultiLine = True
.Global = True
RemoveWhiteSpace = .Replace(target, vbNullString)
End With
End Function
다음과 같이 부릅니다.
Sub NoSpaces()
Dim w As Range
For Each w In Selection.Cells
w.Value = RemoveWhiteSpace(w.Value)
Next
End Sub
사용해 보십시오.
Sub NoSpaces()
Selection.Replace " ", ""
End Sub
대체 예제 사용...= DUPLITE(C1:C18," ",")
당신이 가정하기 때문에Selection.Cells
시트의 모든 셀을 포함합니다.
Cells.Replace " ", ""
그리고 모든 위대한 기여자들의 훌륭한 조언에 추가하기 위해, 시도해 보세요.
TRIM 또는 LTRIM 또는 RTRIM을 사용하면 다음 기능에 대해 자세히 알아볼 수 있습니다.
https://msdn.microsoft.com/en-us/library/office/gg278916.aspx
이제 포함된 공백(문자 사이의 공백)은 제거되지 않지만 선행 및 후행 공백은 제거됩니다.
이게 도움이 되길 바랍니다.
Excelok의 공간 문제, 내가 이 두 유형의 공간을 볼 수 있는 유일한 방법은 내가 만든 이 기능을 설명하기 위해 지금 여기서 하는 그들의 아스키 코드 값을 변환하는 것이며, 그것은 단지 내가 언급한 두 유형의 공간과 동일한지 여부를 문자 검사하여 문자열 문자를 필터링할 것입니다.그렇지 않으면 해당 문자를 루프 후 최종 값이 되는 문자열로 연결합니다.이게 도움이 되길 바랍니다.감사해요.
Function spaceremove(strs) As String
Dim str As String
Dim nstr As String
Dim sstr As String
Dim x As Integer
str = strs
For x = 1 To VBA.Len(str)
sstr = Left(Mid(str, x), 1)
If sstr = " " Or sstr = " " Then
Else
nstr = nstr & "" & sstr
End If
Next x
spaceremove = nstr
End Function
데이터가 포함된 HTML 테이블을 복사하여 엑셀에 붙여넣었지만 셀에 불필요한 공간이 가득 찼고 여기에 게시된 모든 메서드가 작동하지 않아 디버깅을 수행한 결과 실제로는 공백 문자(ASCII 32)가 아니라 공백 문자(ASCII 160) 또는 HTML이었습니다.
깨지지 않는 우주 차로 작동하기 위해 저는 다음과 같이 했습니다.
Sub NoSpaces()
Dim w As Range
For Each w In Selection.Cells
w.Value = Replace(w.Value, " ", vbNullString)
w.Value = Replace(w.Value, Chr(160), vbNullString)
Next
End Sub
언급URL : https://stackoverflow.com/questions/42306358/removing-all-spaces-in-string
'programing' 카테고리의 다른 글
텍스트 보기의 스타일을 프로그래밍 방식으로 설정 (0) | 2023.08.26 |
---|---|
구성: 오류: MySQL include dir를 찾지 못했습니다. (0) | 2023.08.26 |
프로그래밍 방식으로 다른 보기 컨트롤러/장면으로 신속하게 이동 (0) | 2023.08.26 |
애플리케이션 상태 점검을 위해 /healthz를 사용하는 관습은 어디에서 유래되었습니까? (0) | 2023.08.26 |
schema_version에 선택 권한이 없습니까? (0) | 2023.08.26 |