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

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

  2. 데이터 메뉴에서 유효성 검사를 선택하십시오. Excel은 데이터 유효성 검사 대화 상자를 표시합니다.

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

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

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

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

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

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

그러나 A1 셀에 입력 할 수있는 날짜를 제한하려는 경우 어떻게됩니까? 예를 들어 A1 셀에 4/1/04 날짜를 입력하고 A1에 입력 한 다음 날짜가 4/1/04 이전이 아닌지 확인하려는 경우입니다. A1 셀에 4/15/04와 같은 날짜를 입력하면 괜찮지 만 다음에 A1 셀에 날짜를 입력 할 때 4/15/04 이전 날짜를 원하지 않습니다. 즉, 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 교육을위한 소스입니다.

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

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