2012-08-28 5 views
0

나는 몇 시간 동안이 오류를 추적하여 해결하려고 시도했지만 방금 알아낼 수 없습니다. 다음은 설정입니다."참조 유효하지 않음"오류를주는 Excel VBA 사용자 지정 함수

두 개의 시트가있는 Excel 통합 문서가 하나 있습니다 : "입력"및 "계산". 몇 가지 사용자 지정 함수를 작성하여 특정 사항을 계산했습니다. 이 기능은 "계산"시트에서 사용되지만 "입력"시트에서는 참조 셀을 사용합니다. 이제 시트 자체를 사용하면 모든 것이 완벽하게 작동하고 기능이 작동합니다.

그러나 첫 번째와 상호 작용하는 두 번째 Excel 통합 문서가 있습니다. 첫 번째 통합 문서의 "입력"시트에 값을 정의하려고 시도하는 두 번째 통합 문서의 매크로가 있습니다. 그러나 이렇게하면 갑자기 기능이 작동하지 않습니다. "계산"시트에서 셀의 오류를 추적하고 "입력"시트의 셀로 이동하려고하면 참조가 유효하지 않다고 주장합니다.

나는 무슨 문제인지 잘 모른다. 처음에는 아마도 첫 번째 통합 문서 ("Log K Calculator 7.0.0.xlsm")의 이름과 관련이 있다고 생각했지만 변경하려고 시도했지만 동일한 문제가 발생했습니다. 당신은 Excel에서 외부 통합 문서에 앉아 어떤 값을 치료하는 방법을 확인 할 수 있습니다

Sub macro() 

Dim logK As String 
Dim this As String 
logK = "Log K Calculator 7.0.0.xlsm" 
this = ThisWorkbook.Name 

Workbooks(logK).Activate 

Workbooks(logK).Sheets("Input").Cells(11, 4).Value = Workbooks(this).Sheets(1).Cells(1, "B").Value 
Workbooks(logK).Sheets("Input").Cells(12, 4).Value = Workbooks(this).Sheets(1).Cells(2, "B").Value 
Workbooks(logK).Sheets("Input").Cells(14, 4).Value = Workbooks(this).Sheets(1).Cells(3, "B").Value 

End Sub 
+1

WB 이름이 Book1 및 Book2로 변경되어 완벽하게 작동합니다 ... "참조"에 대한 불만이있는 오류 메시지로 판단되는데 셀에 수식이있는 것 같습니다. 따라서 수식으로 다른 곳에서 참조 된 셀을 수정하고있는 것입니다. –

+0

이 문제에 대한 좌절감은 일관성이 없다는 것입니다. 때로는 일어날 때가 있고 때로는 그렇지 않고 그 원인을 찾아내는 데 정말로 어려움을 겪고 있습니다. – user1630640

+0

통합 문서 (this). 시트 (1). 셀 (...)에서 원본 셀의 내용을 제공 할 수 있습니까? –

답변

0

다음은 첫 번째의 값을 변경하려고 두 번째 시트에 매크로입니다. 예 : 숫자를 텍스트로 취급합니까? 입력 시트에 '10000,'300 및 '600'을 수동으로 입력 (텍스트로 표시하지만 숫자로 표시하도록 함)하고 동일한 ref 오류가 발생하는지 확인하여 확인할 수 있습니다.

그런 다음 값을 유형이 지정된 변수 (Long, Decimal, 이름)로 변환하면 문제가 해결 될 수 있습니다. 또는 적어도 형식이 잘못된 사람들을 VBA로 만들자. (예를 들어, 일부에 공백이있어서 명백한 불일치를 설명 할 수있다.)

0

나는이 스레드가 4 년 된 것을 알고 있지만, 나처럼,이 오류는 내 코드가 아닌 다른 통합 문서에서 복사 한 텍스트 상자를 클릭하여 프로 시저를 실행하고 있다는 사실에 기인합니다. 프로 시저/매크로를 텍스트 상자에 첨부했지만 이미 동일한 텍스트 상자에 하이퍼 링크가 할당되어 있다는 사실을 잊어 버렸습니다. 하이퍼 링크를 제거하면 문제가 해결되었습니다.