2013-07-09 9 views
0

회계 형식이어야하는 셀 범위가 있습니다. 내가 가진 문제는 사용자가 날짜를 입력하려고하면 셀의 형식이 날짜로 변경되고 계산이 엉망이된다는 것입니다. 사용자가 날짜를 입력하려고 할 때 잘못된 데이터를 팝업하고 지우려면 메시지 상자 오류가 필요합니다.사용자가 날짜를 입력하지 못하도록합니다.

이미 데이터 유효성을 10 진수로 설정했지만 날짜 (1/2, 1/2/11 또는 1-2-11)를 입력하여 테스트하면 Excel의 셀 서식이 분수로 변경됩니다 또는 날짜와 유효성 검증 오류 이벤트가 발생하지 않습니다.

다른 방법으로 셀 범위의 숫자 서식을 잠그는 방법이있어서 엑셀이 사용자 입력을 기반으로 셀의 형식을 변환하지 못하게 할 수 있습니까?

답변

0

당신은이 코드를 넣을 수 있습니다 셀에 특정 유형의 데이터를 입력하려면이 당신이 사용자를 강제로 사용 엑셀

Select the validation

에서 데이터 유효성 검사 도구를 사용할 수 있습니다 워크 시트 용 VBA 모듈. 메시지를 표시하고 값을 지우고 형식을 다시 Accounting으로 설정합니다.

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim AccountingRange As Excel.Range 
Dim cell As Excel.Range 

Set AccountingRange = Me.Range("B2:B20") 
If Intersect(Target, AccountingRange) Is Nothing Then 
    Exit Sub 
End If 

Application.EnableEvents = False 
For Each cell In Intersect(Target, AccountingRange) 
    If IsDate(cell.Text) Then 
     With cell 
      MsgBox "You entered a date in " & .Address & "." & vbCrLf & "Please don't do that!" 
      cell.ClearContents 
      .NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)" 
     End With 
    End If 
Next cell 
Application.EnableEvents = True 
End Sub 
+0

감사합니다! 정확히 내가 무엇을 찾고 있었는지. 이 문제를 테스트 할 때 약간의 문제가 있습니다. 1, 1.1, 1.12와 같은 숫자를 입력하면 매크로의 절반 정도가 완벽하게 작동합니다. 그러나 다른 때에는 십진수를 입력 할 때 날짜를 입력했다고합니다. – Cate

1

당신은

+0

이미 데이터 유효성을 10 진수로 설정했지만 날짜를 입력하여 테스트 해 봅니다 (1/2, 1/2/11 또는 1-2-11) excel은 셀의 숫자 형식을 분수 또는 날짜로 변경하며 유효성 검사 오류가 발생하지 않습니다. – Cate

관련 문제