Excel의 데이터 유효성 검사 기능을 사용하는 경우 다른 셀의 내용을 기반으로 셀에 들어가는 내용을 제한 할 수 있습니다. 예를 들어 A1 셀에있는 날짜를 기준으로 A2 셀에 들어가는 내용을 쉽게 제한 할 수 있습니다. 다음 단계를 따르십시오.

  1. A2 셀을 선택하십시오.

  2. 리본의 데이터 탭을 클릭합니다.

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

  4. 설정 탭이 표시되는지 확인합니다. (그림 1 참조)

  5. 허용 드롭 다운 목록을 사용하여 날짜를 선택합니다.

  6. 데이터 드롭 다운 목록을 사용하여보다 큼 또는 같음을 선택합니다.

  7. 시작 날짜 상자에 = A1을 입력합니다. 이렇게하면 날짜가 A1 셀에있는 날짜보다 크거나 같아야한다는 것을 Excel에 알립니다.

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

이제 A1 셀의 날짜보다 이전 인 A2 셀에 날짜를 입력하려고 할 때마다 Excel에서 오류 메시지를 표시하고 날짜를 입력 할 수 없습니다.

그러나 A1 셀에 입력 할 수있는 날짜를 제한하려는 경우 어떻게됩니까? 예를 들어, 날짜 4/1/20을 A1 셀에 입력하고 A1에 입력 한 다음 날짜가 4/1/20 이전이 아닌지 확인하려는 경우입니다. A1 셀에 4/15/20과 같은 날짜를 입력하면 괜찮지 만 다음에 A1 셀에 날짜를 입력 할 때 4/15/20 이전 날짜를 원하지 않습니다. 즉, A1 셀이 현재 A1에있는 날짜 이후의 날짜 만 수락 할 수 있는지 확인하려고합니다.

이것은 좀 더 끈적입니다. 위의 단계를 따르지만 1 단계에서 A1 셀을 선택하면 데이터 유효성 검사가 작동하지 않습니다. 왜? A1 셀에 입력 한 날짜는 항상 A1에 입력 한 날짜보다 크거나 같기 때문에 Excel은 데이터 유효성 검사를 수행 할 때 A1의 이전 날짜와 비교하지 않습니다.

이 문제를 해결하는 유일한 방법은 두 개의 매크로를 사용하는 것입니다. 먼저 일반 모듈에 다음 매크로를 배치합니다.

Sub Date_Validation()

Dim dteDate As Date     Dim strDate As String

With Range("A1")

'   Memo original date         dteDate = CDate(.Text)

'   Create date string         strDate = Format(dteDate, "m\/d\/yy")

With .Validation         '   Delete old settings             .Delete         '   Set new data validation             .Add _               Type:=xlValidateDate, _               AlertStyle:=xlValidAlertStop, _               Operator:=xlGreaterEqual, _               Formula1:=strDate

.IgnoreBlank = False             .InCellDropdown = True             .InputTitle = ""

.ErrorTitle = "Invalid Date Entry"

.InputMessage = ""

.ErrorMessage = _               "Date is older than the previous date (" & _               dteDate & ")."

.ShowInput = True             .ShowError = True         End With     End With End Sub

이 매크로는 다른 매크로에 의해 호출되어야합니다.이 매크로는 워크 시트의 코드 창에 배치되어 워크 시트가 변경 될 때마다 트리거됩니다.

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next     If Target = Range("A1") Then Date_Validation End Sub

이러한 매크로가 작동하는 방식은 정말 흥미 롭습니다. 후자는 워크 시트의 코드 창에 배치하기 때문에 워크 시트가 변경 될 때마다 트리거됩니다. 변경중인 셀이 A1이면 Date_Validation 매크로가 실행됩니다.

Date_Validation 매크로는 A1 셀에서 날짜를 가져와 셀에 대한 데이터 유효성 검사 규칙을 구성합니다. 그게 전부입니다. 현재 셀에있는 날짜보다 이전의 날짜를 셀에 입력 할 수 없도록 데이터 유효성 검사 규칙을 설정합니다.

매크로의 장점은 데이터 유효성 검사 규칙이 적용되면 다음에 A1 셀이 변경 될 때 Worksheet_Change 이벤트가 발생하기 전에 데이터 유효성 검사 규칙이 트리거된다는 것입니다. 따라서 데이터 유효성 검사 규칙은 현재 날짜보다 큰 날짜 만 입력 할 수 있도록합니다. 데이터 유효성 검사가 지워지면 매크로가 데이터 유효성 검사 규칙을 재설정하므로 새로 입력 한 날짜와 비교됩니다.

_ 참고 : _

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

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

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

이 팁 (10035)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다. 여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.

link : / excel-Limiting_Entry_of_Prior_Dates [이전 날짜 입력 제한].