1
Excel 2010 용 VBA에 매크로를 작성하고 있습니다. 이해하는 데 기본적인 것이없는 것 같습니다. 문자열 배열을 채우고 해당 배열의 내용을 반복합니다. 배열의 텍스트는 HTML 형식의 전자 메일 메시지에서 가져온 것으로, 큰 줄 바꿈하지 않는 공백이 있습니다. 내 출력에만 텍스트가 포함되도록 이러한 문자 및 기타 인쇄되지 않는 문자를 제거하고 싶습니다.VBA 함수 반환 문자열 형식 불일치 오류
For Each str In stringArr()
CleanString (str)
If Len(str) <> 0 Then
Cells(Row + 1, 6 + index) = str
index = index + 1
End If
Next str
CleanString()은 반환 형식으로 문자열을 반환하지만 str은 변경되지 않습니다. 나는 시도했다 : 형식 불일치 오류를 제공
testString = cleanString(str)
합니다. 어떤 제안?
더 많은 정보를 원하시면 ... 도움을
Function cleanString(sInput As String) As String
Dim sResult As String
sResult = sInput
sResult = Replace(sResult, Chr(10), "")
sResult = Replace(sResult, Chr(13), "")
sResult = Replace(sResult, Chr(9), "")
sResult = Replace(sResult, ChrW(160), "")
sResult = Replace(sResult, Chr(32), "")
Trim$ (sResult)
Application.WorksheetFunction.Clean (sInput)
cleanString = sResult
Exit Function
End Function
에
덕분에 당신은'CleanString'의 정의를 보여줄 수 = STR : 은 (변형 등) cleanString로 변경, 내가 수 있음을 의미? – bernie
님이 질문에 대한 추가 정보를 수정했습니다. –
배열에 String 형식이 없을 수 있습니다. ByVal로 cleanString 인수를 지정하면 sInput As String VBA는 문자열 유형 배열을 문자열로 강제 변환합니다. CleanString (str)은 ByVal 인수를 전달합니다. 즉, str = cleanString (str)과 같이 호출 프로 시저의 변수에 반환 값을 할당해야하지만 str As String을 선언해야합니다. End Function 전에 Exit 기능이 필요하지 않습니다. – Variatus