Bill은 회사에서 처리 할 수 ​​있도록 정보를 워크 시트로 가져와야하는 경우가 많습니다. Bill의 상황에서 그가해야 할 첫 번째 단계 중 하나는 가져온 데이터에있을 수있는 모든 8 비트 ASCII 문자를 제거하는 것입니다. 이 문자는 다른 것으로 바꿀 필요가 없습니다. 7 비트 ASCII 문자 만 남도록 삭제하기 만하면됩니다. Bill은 어떤 유형의 매크로를 사용하여이 작업을 쉽게 수행 할 수 있는지 궁금합니다.

시작하는 데이터의 특성에 따라이 문제에 접근 할 수있는 몇 가지 방법이 있습니다. 워크 시트에 8 비트 문자 만 있다고 가정하면 문자에 사용할 수있는 유일한 문자 코드는 0에서 255까지입니다. 데이터를 7 비트 문자로만 제한하려면 원하는 것만 원하는 것입니다. 문자 코드 범위는 0에서 127까지입니다. 따라서 매크로를 사용하여 128에서 255 사이의 문자를 쉽게 검색하고 간단히 삭제할 수 있습니다. 이 매크로는 다음 접근 방식을 사용합니다.

Sub Remove8Bit1()

Cells.Select     For i = 128 To 255         X = Chr(i)

Selection.Replace What:=X, Replacement:="", _           LookAt:=xlPart, SearchOrder:=xlByRows, _           MatchCase:=False, SearchFormat:=False, _           ReplaceFormat:=False     Next End Sub

이 접근 방식은 워크 시트에서 8 비트 범위에있는 값만 찾습니다. 실제로 수식에 의해 생성 된 8 비트 범위에있는 것은 건드리지 않습니다. (대부분의 경우 문제가되지 않아야합니다. 문제가있는 경우 적절한 해결 방법은 잘못된 결과를 생성하는 수식을 수정하는 것입니다.)

데이터에 유니 코드 문자가 포함 된 경우 다른 접근 방식을 사용하는 것이 좋습니다. 기술적으로 유니 코드 문자는 8 비트 문자가 아닙니다. 16 비트 문자이며 0 ~ 65,535 범위의 문자 코드 값을 가질 수 있습니다. 값이 127이 넘는 것은 무시하고 싶기 때문에 앞에서 설명한 검색 기반 접근 방식을 사용하는 것은 다루기 어려워집니다. 결국 128 개가 아닌 65,000 개 이상의 검색을 수행하게됩니다.

더 나은 방법은 선택한 모든 셀의 모든 문자를보고 문자 코드가 127을 넘는 경우 무시하는 것입니다.

이것이 다음 매크로에서 취한 접근 방식입니다.

Sub Remove8Bit2()

Dim rngCell As Range     Dim intChar As Integer     Dim strCheckString As String     Dim strCheckChar As String     Dim intCheckChar As Integer     Dim strClean As String

For Each rngCell In Selection         strCheckString = rngCell.Value         strClean = ""

For intChar = 1 To Len(strCheckString)

strCheckChar = Mid(strCheckString, intChar, 1)

intCheckChar = Ascw(strCheckChar)

If intCheckChar < 128 Then                 strClean = strClean & strCheckChar             End If         Next intChar         rngCell.Value = strClean     Next rngCell End Sub

매크로는 유니 코드 값을보기 위해 전통적인 Asc 함수 대신 Ascw 함수를 사용합니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (3142)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.

link : / excelribbon-Getting_Rid_of_8-Bit_ASCII_Characters [8 비트 ASCII 문자 제거].