Excel에서 "기본값" 또는 "자리 표시자" 값을 가질 수 있는 방법이 있나요?

Excel에서 "기본값" 또는 "자리 표시자" 값을 가질 수 있는 방법이 있나요?

사용자가 편집할 수 있도록 하고 싶지만 사용자가 입력한 데이터가 없을 때마다 "기본값" 또는 "자리 표시자" 값도 포함하고 싶은 셀이 포함된 스프레드시트가 있습니다. 이에 대한 몇 가지 좋은 사용 사례가 있습니다.

  • 사용자가 자신의 값을 입력하지 않거나 삭제한 경우 합리적인 가정을 제공하는 동시에 수식 오류를 방지합니다.
    • 조건부 서식을 사용하여 사용자에게 기본값을 알리고 기본값을 무시하지 않도록 할 수 있습니다. 그러면 사용자는 해당 값이 의도한 계산에 여전히 적합한지 여부에 대해 정보를 바탕으로 선택할 수 있습니다.
  • 별도의 "지침" 세그먼트나 문서가 없어도 셀에 입력할 내용에 대해 간단한 설명을 제공합니다. 이렇게 하면 실제로 적합하지 않은 경우 근처에 "레이블" 셀이 필요하지 않게 됩니다.

원하는 것을 달성하려면 다음을 수행하는 수식, 스크립트 또는 기타 고급 스프레드시트 옵션이 필요합니다.

  • 사용자가 데이터를 입력하기 전에 셀에 기본값을 표시합니다.
  • 해당 셀에 사용자가 입력한 데이터가 없는 경우 셀을 참조하는 수식에서 기본값을 찾을 수 있도록 허용합니다.
  • 사용자가 자유롭게(물론 "일반" 셀에서와 마찬가지로) 표시된 값을 자신의 값이나 공식으로 덮어쓰고 셀을 참조하는 모든 공식에서 사용자가 입력한 데이터를 찾을 수 있도록 허용합니다.
  • 사용자 입력 삭제로 인해 셀이 공백이 되면 기본값으로 되돌립니다.

Excel에서 이를 수행할 수 있는 방법이 있습니까? 아니면 여기서 스프레드시트 프로그램에 너무 많은 것을 요구하고 있습니까?

답변1

이를 수행할 수 있는 방법이 내장되어 있지 않으므로 직접 만들어야 합니다.

한 가지 가능성은 다음과 같습니다.

  1. 기본값을 원하는 각 셀에 대해 해당 셀을 참조하는 명명된 범위의 워크시트를 만들고 설명 필드에 필요한 기본값을 입력합니다.
  2. 통합 문서 모듈 Workbook_SheetChange이벤트 추가

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        Dim nm As Name
        Dim cl As Range
    
        On Error Resume Next
        For Each cl In Target.Cells
            If IsEmpty(cl) Then
                For Each nm In Sh.Names
                    If nm.RefersToRange.Address = cl.Address Then
                        Application.EnableEvents = False
                        If IsNumeric(nm.Comment) Then
                            nm.RefersToRange.Value = Val(nm.Comment)
                        Else
                            nm.RefersToRange.Value = nm.Comment
                        End If
                        Application.EnableEvents = True
                        Exit For
                    End If
                Next
            End If
        Next
    End Sub
    

이것이 하는 일은:

  • 셀이 변경될 때마다 이벤트 코드가 실행됩니다.
  • 변경된 셀이 비어 있는 경우
    • 셀을 참조하는 워크시트 범위의 명명된 범위를 찾습니다.
    • 이름 설명을 셀 값에 복사하면 숫자로 변환하는 것이 적절합니다.

답변2

나는 다음과 같은 방법을 사용합니다.

-- 학교 기록에 대한 간단한 예:

  • 열 A는 행 제목입니다: 학생 ID, 성, 이름, 생년월일, 나이...
  • 열 B는 고스트 열입니다. 너비 1, 왼쪽 맞춤, 들여쓰기 1 증가, 보호됨, 글꼴 색상 회색, 텍스트 줄 바꿈 없음
  • 열 C는 입력 필드입니다.

-- Col B 값은 기본값으로 C 열에 표시하려는 모든 항목으로 로드됩니다. 값은 함께 제공되는 도우미 시트, 셀이 채워질 때 업데이트되는 수식, 기본값이 포함된 다른 스프레드시트, 오류 메시지 등에서 가져올 수 있습니다.

-- 따라서 학생증을 입력하면 바로 아래 행에 성, 이름, 생년월일, 주소, 부모 등이 고스트 값으로 표시됩니다. C 열 셀에는 아무것도 없으므로 B 열의 고스트 값은 C 열로 확장됩니다. (숫자 및 날짜 값은 text() 함수로 형식화해야 합니다.) 자식 정보를 확인한 후 연산자는 계속해서 아래로 내려 채워 채웁니다. 수업 시간표에 담임선생님이...

-- 변경해야 할 사항이 있으면 셀에 입력되며 이는 해당 어린이의 사항이 다르다는 신호입니다. (성, 부모님 이름, 주소...)

-- 또는 ID를 비워두고 성과 이름을 입력할 수 있으며 고스트 값은 마스터 스프레드시트의 하위 ID를 표시합니다.

-- 도우미 시트는 C 열의 셀을 터치하면 사라지는 도우미 텍스트를 표시할 수 있습니다. 또는 스프레드시트 논리는 도우미 텍스트가 더 이상 적합하지 않거나 다른 내용을 표시해야 한다고 판단할 수 있습니다.

고스트 값은 검색 가능하며 기본 텍스트의 경우 회색, 경고의 경우 빨간색일 수 있으며 관련 스프레드시트가 업데이트되면 자동으로 새로 고쳐집니다.

제한 사항은 고스트 텍스트가 C 열로 줄 바꿈될 수 없다는 것입니다.

관련 정보