2010-04-28 5 views
2

그래서 Excel 워크 시트에 여러 개의 namedRanges가 있습니다. 나는 이것을 사용하여 동일한 WorkBook의 사용자 폼에 콤보 상자를 채우고 싶습니다.Excel 워크 시트에서 명명 된 범위를 사용하여 목록 상자를 전파하십시오.

이 나는 ​​시도했다 :

cboMember.DataSource = Globals.Sheet1.MemberRange.Value 

없음 오류가 주어지지 않고 콤보가 비어 있습니다. 아무도 아이디어가 있니?

Excel 2007 용 VSTO를 VS 2008 용으로 사용하려고합니다.

답변

2

cboMember.RowSource = "하여 NamedRange"

당신은 객체로 설정하지 않습니다. 그것을 문자열로 설정하십시오. Excel이 나머지를 계산합니다.

2

이것은 약간의 추측이지만 나는 VBA를 사용하여 이름이 주어진 범위를 얻기 위해 단지 Range("MyRangeName")과 같은 것을 할 수 있다고 믿습니다. 그래서 그것과 동등한 시도를 할 수 있습니다.

Excel의 일부 범위는 시트에 대해 로컬이며 일부는 통합 문서에 대해 전역입니다. 시트에 로컬 인 경우 시트 이름 앞에 접두어를 붙여야합니다. Range("Sheet1!MyRangeName").

+0

감사합니다. Rory Globals.Sheet1.MemberRange.Value는 배열의 올바른 값을 반환하지만 내 combobox를 바인딩 할 수 없습니다. 나는 combobox에 개별적으로 값을 할당하기 위해이 배열을 반복해야한다고 생각한다. cboMember.additem Globals.Sheet1.MemberRange.Value [i] 하지만 나는 더 쉬운 방법이 있어야한다고 생각했다. – Dowlers

+0

더 쉬운 방법이 있다고 네가 맞다고 생각해. 콤보 박스를 수동으로 바인딩 한 다음 VBA/디버거로 검사 할 때 어떻게 보이는지 보시겠습니까? – Rory

관련 문제