0

スプレッドシートに日付のリストがあり、これらの日付の横にその日付に対応する詳細があります。リスト内のすべての日付を見つけるコンボボックスがありますが、ドロップダウンから特定の日付を選択すると、これまでのところ、フォームのテキスト ボックスにその行の対応するデータを表示します。

Private Sub ComboBox1_Change()
    Dim rw As Long, cl As Range
    staffName = TextBox8.Value

    rw = WorksheetFunction.Match(Me.ComboBox1.Value, Worksheets(staffName).Range("A16:A18"), 0)
    TextBox1 = Worksheets(staffName).Range("A" & rw).Offset(0, 1)
    TextBox2 = Worksheets(staffName).Range("A" & rw).Offset(0, 2)
    TextBox3 = Worksheets(staffName).Range("A" & rw).Offset(0, 3)
    TextBox4 = Worksheets(staffName).Range("A" & rw).Offset(0, 4)

End Sub

エラーはありませんが、アイデアがうまくいきませんか?

4

1 に答える 1

0

Find次のように、Match を vba関数に変更してみてはどうでしょうか。

Private Sub ComboBox1_Change()

    Dim cl As Range, wks As Worksheet
    staffname = TextBox8.Value

    Set wks = Sheets(staffname)
    Set cl = wks.Range("A16:A18").Find(Me.ComboBox1.Value, lookat:=xlWhole)

    With Me
        .TextBox1.Value = cl.Offset(, 1)
        .TextBox2.Value = cl.Offset(, 2)
        .TextBox3.Value = cl.Offset(, 3)
        .TextBox4.Value = cl.Offset(, 4)
    End With

End Sub
于 2012-10-23T13:27:55.247 に答える