Jean은 숫자 표에서 쉼표를 마침표로 바꿔야합니다. 그는 프랑스에서 프랑스 PC를 사용하여 일하지만 Excel이 아닌 미국 애플리케이션의 경우이 번호를 “번역”해야합니다. 수동으로 찾기 및 바꾸기를 수행하면 모든 것이 잘 작동합니다. 물론 그의 숫자는 문자열로 변환되지만 Jean은 괜찮습니다. 매크로에서 동일한 찾기 및 바꾸기 작업을 수행하려고하면 아무 일도 일어나지 않습니다. 쉼표는 무시되는 것 같습니다. Jean은 매번 수동으로 수행 할 필요없이 매크로에서이 작업을 수행 할 수있는 방법을 궁금해합니다.

Excel이 지역 설정으로 사용하는 것을 일시적으로 수정하여 Jean이 원하는대로 정보를 표시 할 수 있도록 비교적 쉽습니다. 다음 매크로는 원하는 설정 사이를 쉽게 앞뒤로 전환합니다.

Sub ChangeNumberFormat()

With Application         .UseSystemSeparators = False         If .DecimalSeparator = "." Then             .DecimalSeparator = ","

.ThousandsSeparator = "."

Else            .DecimalSeparator = "."

.ThousandsSeparator = ","

End If     End With End Sub

이는 정보가 표시되는 방식을 변경 한 다음 원하는 비 Excel 형식 (예 : CSV)으로 정보를 내보낼 수 있습니다. 완료되면 매크로를 다시 실행하면 지역 설정이 원래 상태로 돌아갑니다. 이 접근 방식의 이점은 셀에있는 내용을 실제로 변경하지 않고 해당 정보가 표시되는 방식 만 변경한다는 것입니다. 이는 귀하의 번호가 계속해서 그대로 사용될 수 있다는 것을 의미합니다.

더 직접적인 것이 필요한 경우 찾기 및 바꾸기를 사용하지 않는 것이 가장 좋습니다. 대신 매크로를 사용하여 각 셀의 내용을 직접 수정하십시오. 이러한 접근 방식은 매크로에서도 찾기 및 바꾸기에 의존하는 것보다 훨씬 빠르게 실행할 수 있습니다. 다음은이 개념의 간단한 적용입니다.

Sub SwitchCommasPeriods()

Dim c As Range     Dim sTemp As String          For Each c In Selection         sTemp = c.Text         sTemp = Replace(sTemp, ",", "|")

sTemp = Replace(sTemp, ".", ",")

sTemp = Replace(sTemp, "|", ".")

c = sTemp     Next c End Sub

매크로에서 몇 가지 사항에 유의하십시오. 먼저 각 셀의 Text 속성을 확인합니다. 그 이유는 Text 속성이 셀의 서식이 지정된 값, 즉 표시되는 값을 반환하기 때문입니다. (단순히 Value 속성을 보면 사용하려는 것이 아닌 형식화되지 않은 숫자가 표시됩니다.)

두 번째로 주목할 점은 Replace 기능을 사용하여 먼저 모든 쉼표를 세로 막대로 바꾸고, 모든 마침표를 쉼표로, 마지막으로 모든 세로 막대를 마침표로 바꾸는 데 사용됩니다. 이 방법은 기본적으로 텍스트에서 마침표와 쉼표를 교체하기 때문에 필요합니다.

매크로를 사용하려면 영향을 미칠 셀을 선택한 다음 실행하면됩니다. 선택한 셀만 처리됩니다. 셀에 수식이 포함 된 경우 매크로는 해당 수식을 수식의 처리 된 결과로 바꿉니다. 그러나 진의 목적에는 괜찮을 것입니다.

_ 참고 : _

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

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

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

이 팁 (13675)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다.