2017-12-18 2 views
0

VBA를 통해 업데이트 할 수있는 목록 상자의 RowSource 속성을 가져올 수 없습니다. 다른 스레드에서 구문을 찾았으므로 이것이 정확하다고 생각합니다. 그러나 실패하지는 않지만 RowSource 속성에는 아무 것도 수행하지 않습니다 (공백으로 남음). 아래 :VBA를 통해 Rowsource가 작동하지 않습니다.

frmAddIngredient는 사용자 서식입니다.

lbxIngredient는 해당 형식의 목록 상자 컨트롤입니다.

UniqueIngredients는 통합 문서의 시트 중 하나입니다.

NumberOfItems는 1 (이 경우)입니다.

오류는 발생하지 않지만 아무 것도 변경하지 않습니다. 양식 자체는 현재 활성화되어 있지 않습니다. 이 코드는 나중에 표시 할 수 있도록 양식을 설정해야합니다.

frmAddIngredient.lbxIngredient.RowSource = Sheets("UniqueIngredients").Range("A1:A" & CStr(NumberOfItems)).Address 

가장 최근의 코드는 여전히 실제 형태로 아무것도 변경되지 않습니다,

 frmAddIngredient.lbxIngredient.RowSource = "=UniqueIngredients!A1:A1" 

하지만.

또한 새 게시물을 추가 할 수 있습니까? 아니면 계속 편집하고 추가해야합니까?

+0

당신은 그것을 포기하고'1 $ A $ : $ A 값에 대한 $ 42'을. 언급 한 워크 시트를 어떻게 알 수 있습니까? 'Range.Address' 문자열에 할당하는 대신 실제'Range'를'Set '하려고 했습니까? –

+0

질문을 이해할 수 없습니다. 워크 시트는 "UniqueIngredients"입니다. 채우기를 원하는 것은 A 열의 모든 셀입니다. 예제에서는 A1 셀만 필요합니다. – JimG

+0

예, 'Sheets ("UniqueIngredients"). 범위 ("A1 : A"및 CStr (NumberOfItems))는 어떻게 평가됩니까? –

답변

0

원하는 내용 (질문에 설명 된대로)을 수행 할 수 없습니다. 코드로 무언가를 설정해도 속성 창이 변경되지 않고 프로젝트가 재설정 될 때까지만 변경됩니다.

두 개의 버튼이있는 Userform을 원래 이름과 캡션으로 생각한 다음 모듈에이 두 개의 서브를 붙여 넣습니다.

Sub demo1() 
    UserForm1.CommandButton1.Caption = "Demo 1" 
    UserForm1.Show 
End Sub 

Sub demo2() 
    UserForm1.CommandButton2.Caption = "Demo 2" 
    UserForm1.Show 
End Sub 

첫 번째 서브 demo1 버튼 1의 캡션을 실행

가 변경되었습니다하지만 버튼 2의 캡션 않았습니다.

enter image description here

당신은 원래 하드 세트 (속성 창) 이름이고 이제 버튼이 다른 이름을 가지고에 그 버튼 1의 캡션을 돌아 볼 수는 Userfom을 닫고 지금 demo2를 실행합니다.

enter image description here