2017-09-19 1 views
1

사용자가 셀의 특정 텍스트 만 사용하도록 할 수있는 방법이 있습니까? 예를 들어, 사용자는 다음 단어 나 기호 만 사용하여 A1 셀에 텍스트를 쓸 수 있습니다. "Price", "Factor", "Adder", "Main", "+", "-" , "(", ")" 때문에 사용자가 같은 것을 쓸 수 있는지 : ((주-가격) + 가산기) 하지만강제 특정 텍스트 vba

+0

당신은 당신의 확인 목록에 모든 것을 대체하고, ""로 대체 할 수있다. 셀의 텍스트 길이를 확인하십시오. 당신이 알고있는 것보다 0보다 큰 경우 다른 문자가 남았습니다. 힌트 : 가장 긴 것부터 먼저 대체해야합니다. 잠재적으로 공간을 없애기 위해 정리/정리 기능을 수행해야 할 수도 있습니다. –

답변

0

봅니다 위의 하나에서 모든 문자, 단어 또는 다른 기호를 포함 어떤 텍스트를 @Formard 에드의 제안에 따라이

Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim str As String 
    Dim arr(), item 

    arr = Array("Price", "Factor", "Adder", "Main", "+", "-", "(", ")") 'text allowed 
    str = Target.Value 

    If Not Application.Intersect(Target, Range("A1")) Is Nothing Then 'change A1 to your range 
     For Each item In arr 'replace all item in arr with "" 
      str = Replace(str, item, "") 
     Next item 

     If Len(Trim(str)) > 0 Then 
      MsgBox "Enter Correct Data", vbCritical, "Invalid Entry" 
      Application.EnableEvents = False 
      Target.Value = vbNullString  'if incorrect data entered make cell empty 
      Application.EnableEvents = True 
     End If 
    End If 
End Sub 
0

, 당신은 substitute 기능과 함께 data validation을 사용 할 수있다. 허용되는 값 목록을 E1:E8 범위에 넣으십시오. 그런 다음 셀 B1에이 함수를 붙여 넣으십시오. =LEN(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,$E$1,""),$E$2,""),$E$3,""),$E$4,""),$E$5,""),$E$6,""),$E$7,""),$E$8,""))). 세포 A1에서

custom에 허용 설정, data validation를 작성하고 당신이 세포 A1에 잘못된 입력을 입력하면 formula tab 지금이 공식 =B1=0 enter image description here

를 입력, 데이터 유효성 검사는 값을 입력 할 수 없습니다.

enter image description here

+0

데이터 검증'= yourformula = 0'에서 수식을 사용하고 도우미 열을 피하지 않는 이유는 무엇입니까? –

+0

시도해 보니 오류가 발생했습니다. –

+0

지금 다시 시도해 보니 작동 중이고 = 0 부분에 대해서는 잊어 버린 것 같습니다 :) –