워크 시트에서 Carol은 “Accounting”형식의 셀이 있습니다. 누군가 실수로 해당 셀에 날짜 (mm / dd / yy)를 입력하면 Excel은 날짜를 올바르게 표시하도록 셀의 서식을 자동으로 변경합니다. 그러나 해당 셀에 달러 금액을 다시 입력하려고하면 “회계”형식으로 돌아 가지 않습니다. 셀은 날짜 형식으로 유지됩니다.

사용자가 오류를 확인하고 수정하면 문제가 없지만 “상용구”텍스트가있는 템플릿에서 이러한 문제가 여러 번 발생하며 셀 서식 지정에 대한 액세스 권한없이 템플릿이 보호됩니다. Carol은이 문제가 발생하는 이유와이를 수정하는 방법에 대한 아이디어가 있는지 궁금합니다.

간단한 워크 시트에서 서식 변경을 방지하는 빠른 방법을 원하면 다음 단계를 따르십시오.

  1. Excel 옵션 대화 상자를 표시합니다. (Excel 2007에서는 Office 단추를 클릭 한 다음 Excel 옵션을 클릭합니다. Excel 2010 이상 버전에서는 리본의 파일 탭을 표시 한 다음 옵션을 클릭합니다.)

  2. 대화 상자의 왼쪽에서 고급을 클릭합니다.

  3. 고급 옵션의 맨 아래로 스크롤하십시오. (그림 1 참조)

  4. 전환 수식 입력 옵션이 선택되어 있는지 확인하십시오.

  5. 확인을 클릭하십시오.

이 특정 옵션을 사용하면 Excel에서 Lotus 1-2-3과 동일한 방식으로 입력 된 정보를 평가 (구문 분석)합니다. 즉, 날짜는 더 이상 날짜가 아니라 수식으로 구문 분석됩니다. 따라서 누군가가 11-16-13을 셀에 입력하면 “11-16-13″로 구문 분석되고 셀에 -18로 표시됩니다. 날짜로 구문 분석되지 않았기 때문에 회계 형식은 원하는대로 셀과 연결된 상태로 유지됩니다.

하지만이 방법에는 단점이 있습니다. Excel은 이후에 Lotus 규칙에 따라 모든 항목을 구문 분석하기 때문에 사용자는 다른 Excel 워크 시트와 동일한 규칙을 따르지 않으므로 워크 시트가 제대로 작동하지 않는다고 결론을 내릴 수 있습니다. 이것이 제가이 접근 방식이 간단한 워크 시트에 적합 할 수 있다고 언급 한 이유입니다. 워크 시트가 자격이되는지 결정해야합니다.

구문 분석이 수행되는 방식을 변경하지 않으려는 경우 가장 좋은 방법은 워크 시트에 이벤트 처리기를 추가하는 것입니다. 예를 들어 데이터가 입력 된 위치를보고 해당 셀에 대한 변경 사항이 원하는 형식을 유지하도록하는 이벤트 처리기를 포함 할 수 있습니다.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngToCheck As Range     Set rngToCheck = Range("E2")

If Intersect(Target, rngToCheck) Then         rngToCheck.NumberFormat = _           "_($ #,##0.00_);_($ (#,##0.00);_($* "" - ""??_);_(@_)"

End If End Sub

이 예제에서 회계 형식을 유지하려는 셀은 rngToCheck 변수에 지정된대로 E2입니다. 다른 셀 범위에 형식을 적용하려면 할당 줄을 변경하십시오.

더 많은 유연성을 원하면 다른 이벤트 핸들러 세트를 사용할 수 있습니다. 예를 들어 다음 예제에서는 Worksheet 개체의 SelectionChange 및 Change 이벤트를 모두 사용합니다. 특정 형식을 강요하지는 않지만 셀의 형식이 이전과 다르게 변경되는 것을 방지합니다. 따라서이 접근 방식은 회계 형식을 적용하는 것뿐만 아니라 모든 형식을 보호합니다.

Dim nFormat As String

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngToCheck As Range     Set rngToCheck = Range("E2")

If Intersect(Target, rngToCheck) Then         rngToCheck.NumberFormat = nFormat     End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

nFormat = Target.NumberFormat End Sub

SelectionChange 이벤트 핸들러가 먼저 실행되어 기존 형식을 nFormat 변수로 설정합니다. 그런 다음 Change 이벤트 핸들러가 실행되고 서식을 원래대로 다시 설정합니다.

시도 할 수있는 또 다른 접근 방식은 데이터 유효성 검사를 사용하는 것입니다. 이 방법에는 매크로가 필요하지 않으므로 시스템에서 매크로를 사용하지 않도록 설정 한 사용자가 통합 문서를 사용할 경우 적합합니다.

다음 일반 단계를 따르십시오.

  1. 서식을 적용 할 셀을 선택합니다.

  2. 리본의 데이터 탭을 표시합니다.

  3. 데이터 도구 그룹에서 데이터 유효성 검사 도구를 클릭합니다. Excel은 데이터 유효성 검사 대화 상자를 표시합니다.

  4. 허용 드롭 다운 목록을 사용하여 사용자 지정을 선택합니다. (그림 2 참조)

  5. 수식 상자에 = CELL ( “format”, B2) = “C2″를 입력합니다. 다른 데이터 유효성 검사 설정을 원하는대로 설정합니다.

  6. 확인을 클릭하십시오.

수식 (5 단계)은 셀의 서식을 확인하고 해당 서식에 따라 입력을 허용하거나 허용하지 않습니다. 인용 된 공식에서 형식 C2는 회계 형식의 내부 이름입니다. 수식의 코드를 기본 설정에 따라 “, 2”, “C2”, “C0”, “C2-“또는 “C0-“와 같은 다른 형식으로 쉽게 변경할 수 있습니다. 사용해야하는 형식을 파악하는 가장 쉬운 방법은 데이터 유효성 검사 규칙을 적용하기 전에 원하는대로 셀 형식을 지정하는 것입니다. (예를 들어 L13 셀에 서식을 적용한다고 가정 해 보겠습니다.) 그런 다음 다른 셀에서이 수식을 사용하여 Excel에서 적용한 형식을 확인할 수 있습니다.

=CELL("format",L13)

_ 참고 : _

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

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

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

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