2017-10-20 9 views
0

내 문제는 vba를 사용하여 목록 상자에서 행을 선택할 수 있습니다. 내 프로그램은 테이블을 반복하고리스트 박스의 값, 즉 정수/행 번호를 찾아리스트 박스 이름과 마찬가지로 변수에 설정합니다.vba를 사용하여 목록 상자 항목 선택

그래서 목록 상자 이름 = 변수 LstName
ListBox 값 = 정수로 strvalue.

목록 상자에서 해당 행을 선택하여 강조 표시되도록하려합니다. 그냥 작동시키지 못합니다. 실제 이름과 네메 릭 값을 사용하면 완벽하게 작동하지만 결합하면 me.LstName.selected(strValue) = True은 오류를 만듭니다.

+1

strValue을 선택 ListboxSelectString Me.LstName, strValue을 사용할 수 있습니다 무엇 오류는 무엇입니까? - 고마워요 :) – Dman

답변

1

그건 목록 상자의 작동 방식이 아닙니다. LstName.Selected(iRow as Long) As Long은 숫자 만 사용하며 true이면 -1을, false이면 0을 반환합니다.

당신이 문자열을 기반으로 목록 상자에서 항목을 설정하려면, 다음과 같은 사용할 수 있습니다 그리고

Public Sub ListboxSelectString(lstListbox As ListBox, strToSelect As String, Optional SelectDeselect As Boolean = True) 
    Dim i As Integer 
    For i = 0 To lstListbox.ListCount - 1 
     If lstListbox.ItemData(i) = strToSelect Then 
      lstListbox.Selected(i) = SelectDeselect 
     End If 
    Next i 
End Sub 

당신은 당신이에 정교한 수 Me.LstName

+0

안녕하세요, 감사합니다. 나는 잠시 쉬지 않고 모든 것이 잘 될 것입니다. ..... –

+0

안녕하세요, 저는 이걸로 조금 불명확합니다 ... 나는 이미 내가 원하는 행 번호가 있습니다. 목록 상자에서 선택하십시오. 숫자에서 해당 항목을 선택하고 싶습니다. 내 코드는 양식을 순환하고 임시 테이블에 컨트롤을 쓰고 컨트롤 값을 테이블에 삽입하는 것입니다. 그런 다음 명령 단추를 사용하여 양식을 남겨 둘 수 있습니다. ..... 완료되면 양식으로 돌아가서 임시 테이블의 값을 다시 쓰려고합니다. 일부 컨트롤은 listBoxes입니다. 숫자는 0부터 n까지입니다. 내가 가진 문제는 목록에서 해당 레코드를 다시 선택하는 것입니다. 감사합니다 –

+0

그런 다음 목록 상자의 값 ('ListCount'),'strValue'의 값과 유형, 발생하는 오류 번호 및 설명 등을 자세히 설명해주십시오. –