0

いくつかのコンボ ボックスを含むフォームがあります。最初のコンボボックスは、Excel シートの各行に基づいてアイテムを追加します。

Public Sub FetchExcelValues(ByVal ControlType As String, ByVal control As Object, ByVal xlApp As Object, ByVal xlWorkBook As Object, ByVal xlWorkSheet As Object, ByVal column As String, ByVal row As Integer)

    Dim iTeller = row
    Dim tekst As String

    Do
        tekst = xlWorkSheet.Cells(iTeller, column).Value
        If tekst <> "" Then
            If ControlType = "Tekstboks" Then
                control.text = tekst
            End If
            If ControlType = "Combobox" Then
                control.Items.Add(tekst)
            End If
            If ControlType = "Label" Then
                control.text = tekst
            End If
        End If
        iTeller = iTeller + 1
    Loop Until tekst = ""

End Sub

これは基本的に、空白のセルに到達するまで、指定された列の各セルを読み取ります。次に、各セルの値を取得し、最初のコンボ ボックスにアイテムとして追加します。次にコードに実行させたいのは、このコンボ ボックスから選択した項目を取得し、別のワークシートで一致するものを探すことです。一致するセルが見つかったら、一致する行と同じ行の列 B から値を取得する必要があります。複数の一致もある可能性があるため、一致が見つかるたびに、同じ行の列 B の値を取得し、それを 2 番目のコンボボックスの項目として追加したいと考えています。

これを達成する最善の方法は何ですか?

4

1 に答える 1

2

ExcelのVLookupまたはHLookup関数を使用する必要があるように思われます。それらは、コーディングなしで、数式だけで、あなたが探しているものと同じように機能します。

于 2010-10-25T15:01:31.390 に答える