초기 바인딩 된 참조는 다른 Excel 버전을 가진 사용자에게 배포되는 응용 프로그램에서 문제를 일으키기 위해 "바운드"됩니다.
가장 늦은 버전의 Excel에 후기 바인딩 및 코딩을 사용하면 지원할 수 있습니다. 예를 들어 Excel 2000을 지원하는 경우 응용 프로그램은 Excel 2000에서 지원되는 메서드 만 사용합니다.
그러나 코드가 런타임에 바인딩 된 경우 모호한 메서드 호출을 사용하고 로컬 버전을 검색하여 운영.
예 : (즉 Object에서 파생 된) 코드 늦은 바인딩되어 있기 때문에
Dim excelVersion As Long
Dim xl As Object
' get a reference to Excel.Application maybe from AddinInstance_OnConnection()?
excelVersion = Val(xl.Version)
Select Case excelVersion
Case 11 ' Excel 2003
' Excel 2003-only methods here
' ex: xl.FileSearch
Case 12 ' Excel 2007
' Excel 2007-only methods here
Case 14 ' Excel 2010
' Excel 2010-only methods here
' ex: something with Slicers
End Select
, 나는 단지 엑셀 2010 년에 유효한 방법을 지정할 수 있으며, 코드는 여전히 컴파일합니다. 코드가 Excel 2003에 초기 바인딩되어 있으면 컴파일되지 않습니다. 런타임에 나는 버전을 결정하여 사용할 메소드를 결정합니다.
Excel 2010 관련 기능을 사용하는 경우 다른 버전의 응용 프로그램을 컴파일하는 것도 좋습니다. 가능한 경우에만 당신 만 알 수 있습니다.
또한이 답변을 작성한 후에 생각해 보았지만 앱에서 Excel 2010을 참조 할 수없고 이전 버전의 Excel이 설치된 컴퓨터에 Excel 2010이 설치되어있는 경우 참조가 자동으로 조정되지 않습니다. Excel 버전이 설치되어 있습니까?
[나를위한 작품] (http://i.stack.imgur.com/4Uy6k.png). 다시 설치하십시오. – GSerg
14 첫 번째 장소에서 10 int와 역 호환이 가능합니다. 그것은 사무실의 64 비트 버전이 아닙니까? – Deanna
10은 이전 버전과 호환되지만 Excel에서는 사용할 수 있도록 프로젝트에서 참조해야합니다. – Bronzato