다른 comboboxes에서 선택한 값에 따라 여러 콤보 상자를 채워야합니다. 내가 원하는 것은 선택한 이름에 대한 활동으로 상자를 채우는 것입니다. 특정 이름이 연속적인지 비교 한 다음 오프셋을 사용하여 활동 이름을 가져 와서 배열에 기록합니다. 그것은 작동하지 않습니다 아마도 오프셋과 관련이 있거나 어쩌면 활동 세포의 합병이 문제입니다.엑셀 vba 셀 선택
Private Sub ComboBox1_Change()
Dim ExpName As String
ExpName = ComboBox1.Value
Dim ActNames() As String
ActNames = FindingActivities(ExpName)
For i = 0 To UBound(ActNames)
If ActNames(i) <> "" Then
ComboBox3.AddItem ActNames(i)
End If
Next
End Sub
누구나 아이디어가있다 :이 코드는 콤보 상자를 채우는 것입니다
Function FindingActivities(ExpName)
Dim ActNames(500) As String
Dim i As Integer
Dim CurrContent As String
For Each cell In Range("B7").EntireColumn.cells
If cell.Value <> "" Then
If ExpName = cell.Value Then
CurrContent = Left(cell.Offset(0, -1).Value, 2)
If CurrContent = "Ac" Then
ActNames(i) = cell.Offset(0,-1).Value
i = i + 1
End If
End If
End If
Next cell
FindingActivities = ActNames()
End Function
: 여기 내 코드는?
어떤 부분이 작동하지 않습니까? 변수를 어떻게 선언하고 있습니까? – aevanko
함수에 대한 추가 코드를 추가했습니다. 작동하지 않는 부분은 활동 이름이 있어야하지만 CurrContent가 비어 있다는 것입니다. – user366121
'CurrContent' *는 항상 빈 문자열입니까? 중단 점 설정 및 코드 디버깅을 시도 했습니까? 예 : 'cell.Offset (0, -1) .Value'를 감시하고 있습니까? 당신은 단지 그렇게 할 필요가있는 것처럼 들리며, 스스로 오류를 발견 할 것입니다. –