시간으로 입력 제한 (Microsoft Excel)
Steven은 매일 오후 4시에서 6시 30 분 사이에 워크 시트에 정보를 입력하는 사람이 없도록해야합니다. 그는 사용자가 매일 특정 시간 동안 워크 시트에 정보를 입력하지 못하도록 데이터 유효성 검사를 사용할 수 있는지 궁금합니다.
이 문제를 해결할 수있는 일반적인 두 가지 방법이 있습니다. 한 가지 방법은 데이터 유효성 검사를 사용하여 시간을 확인하고 데이터 입력을 허용하거나 허용하지 않는 것입니다.
-
워크 시트의 모든 셀을 선택합니다.
-
리본의 데이터 탭을 표시합니다.
-
데이터 도구 그룹에서 데이터 유효성 검사 도구를 클릭합니다. Excel은 데이터 유효성 검사 대화 상자를 표시합니다. (그림 1 참조)
-
허용 드롭 다운 목록을 사용하여 사용자 지정을 선택합니다.
-
수식 상자에 다음을 입력합니다.
-
원하는대로 오류 경고 탭에서 변경합니다.
-
확인을 클릭하십시오.
이 방법의 문제점은 첫 번째 단계에 있습니다. 워크 시트의 모든 셀을 선택하여 데이터가 입력되지 않도록해야합니다. 또한 셀에서 이미 데이터 유효성 검사를 사용중인 경우이 방법은 해당 설정을 덮어 씁니다.
이러한 이유로 매크로 기반 접근 방식을 사용하는 것이 더 나을 수 있습니다. 이러한 모든 접근 방식은 이벤트 처리기를 활용하여 변경 사항을 확인할 수 있습니다. 다음은 Worksheet_Change 이벤트에 의존합니다. 즉, Excel이 워크 시트에서 변경 사항을 감지 한 경우에만 트리거됩니다.
Private Sub Worksheet_Change(ByVal Target As Range) Dim sMsg As String sMsg = "No entries allowed between 4:00 pm and 6:30 pm!" If Time >= "4:00:00 PM" And Time <= "6:30:00 PM" Then MsgBox sMsg, vbCritical With Application .EnableEvents = False .Undo ' This undoes the change the person made .EnableEvents = True End With End If End Sub
기본적으로 워크 시트에 변경 사항이있을 때마다 처리기는 오후 4시에서 오후 6시 30 분 사이에 있는지 확인합니다. 그렇다면 오류를 나타내는 메시지 상자가 표시되고 .Undo 메서드를 사용하여 시도 된 변경 내용을 롤백합니다.
원하는 경우 다른 접근 방식을 취하고 금지 된 시간 내에있는 경우 워크 시트를 보호 할 수 있습니다.
Private Sub Worksheet_Activate() If Time >= "4:00:00 PM" And Time <= "6:30:00 PM" Then ActiveSheet.Protect MsgBox "Worksheet is protected." Else ActiveSheet.Unprotect MsgBox "You are free to edit now." End If End Sub
Worksheet_Activate 이벤트 처리기는 워크 시트가 활성화 (선택) 될 때마다 호출됩니다. 금지 된 시간 외에 워크 시트가 활성화되면 보호되지 않습니다. 물론 사용자는 금지 된 시간 동안에도 워크 시트의 보호를 수동으로 해제 할 수 있으므로 앞에서 설명한대로 변경이 시도 될 때마다 트리거되는 접근 방식과 함께이 접근 방식을 사용하는 것이 좋습니다.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (13503)은 Microsoft Excel 2007, 2010, 2013 및 2016에 적용됩니다.