他のコンボボックスで選択した値に応じていくつかのコンボボックスを記入する必要があります。私が望むのは、ボックスに選択した名前のアクティビティを入力することです。特定の名前が行内にあるかどうかを比較してから、オフセットを使用してアクティビティ名を取得し、それを配列に書き込みます。動作していない可能性があります。おそらくオフセットと何か関係があるか、アクティビティセルのマージが問題になるかもしれません。ここに私のコードは次のとおりです。vba細胞を選択する
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
これは、コンボボックスを埋めるためのコードです:
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
誰もがアイデアを持って?
どの部分が機能していませんか?あなたはどのように変数を宣言していますか? – aevanko
私は関数のための追加のコードを追加しました。機能していない部分は、アクティビティ名はそこにあるはずですが、CurrContentが空であることです。 – user366121
'CurrContent' *は常に空文字列ですか?ブレークポイントを設定してコードをデバッグしようとしましたか?例えば'cell.Offset(0、-1).Value'を監視していますか?あなたはそれを行う必要があるように思えるし、自分でエラーを見つけるでしょう。 –