2013-11-04 2 views
1

여러 스레드를 거치고 유효성 검사에 대한 몇 가지 팁을 얻었습니다. 하지만 여전히 내 코드가 내게 오류를 던지고있다. 어리석은 실수 일 수는 있지만 그럴 수는 없습니다.Excel VBA 유효성 검사 목록 오류

 Set val1range = projInfo.Range(projInfo.Cells(2, 23), projInfo.Cells(m, 23))  

     With Cells(rowN, 3).Validation 
       .Delete 
       .Add Type:=xlValidateList, Formula1:="=" & val1range 

       .IgnoreBlank = True 
       .InCellDropdown = True 
       .InputTitle = "" 
       .ErrorTitle = "" 
       .InputMessage = "" 
       .ErrorMessage = "" 
       .ShowInput = True 
       .ShowError = True 
     End With 

나는 줄 .Add 응용 프로그램 정의 또는 개체 정의 오류에 1004 오류가 발생하고있다.

정확한 수식을 알려주시겠습니까? 당신이 게시 코드가 projInfo, m, 또는 rowN를 정의하지 않습니다하지만 추가 방법은 CONCATENATE 문자열, "=" 및 범위 객체, val1Range을 시도하기 때문에이 유일한 오류 인 경우

+0

코드의 어느 부분 오류의 원인이된다? – hammus

+0

내가 도착 중입니다. 행 – Sivasankar

+0

을 추가합니다. 행을 삭제 한 다음 곧바로 참조 할 수 있다고 생각합니다. With 블록 외부에서 Delete 메소드를 호출 해보십시오. – hammus

답변

2

확실하지. Range 객체의 기본 속성은 Value이므로 실제로는 주소 대신 셀의 내용과 연결하여 "="을 연결합니다 (원하는 것으로 추정 됨).

는 해결이 줄을 변경하려면 : 이것에

.Add Type:=xlValidateList, Formula1:="=" & val1range 

:

.Add Type:=xlValidateList, Formula1:="=" & val1range.Address 
+0

projinfo, m rowN은 모두 이전 라인에서 정의되었으며 모두 vaild 값을 보유합니다. 그냥 여기에 보여주지 않았어. 그리고 나는 그것에 대해 유감이다. 네가 제안한 수정안을 줬어. 여전히 동일한 오류가 발생합니다. – Sivasankar