|
▼たつ さん:
>>Private Sub ComboBox1_Change()
>> Dim CBC As Long, i As Long, j As Long
>>
>> With Worksheets("Sheet1")
>> CBC = ComboBox1.ListIndex + 1
>> j = .Cells(2, CBC).End(xlDown).Row
(上記だとリスト1つの時に無視してしまうので)
j = .Cells(1, CBC).End(xlDown).Rowに修正
>> If j = 65536 Then Exit Sub
>> ComboBox2.Clear
>> For i = 2 To j
>> ComboBox2.AddItem .Cells(i, CBC).Value
>> Next i
>> ComboBox2.ListIndex = 0
>> End With
>>End Sub
>>Private Sub UserForm_Initialize()
>> Dim i As Long
>>
>> With Worksheets("Sheet1")
>> For i = 1 To 4
>> ComboBox1.AddItem .Cells(1, i).Value
先ずここの.cellsの.は直近のWithで指定されているObject?に
付随するものを意味しますので省略してはいけません。
エラーになるのは対象シート名が("Sheet1")ではないからだと
思います。実際のシート名に変更して下さい。
>> Next i
>> ComboBox1.ListIndex = 0
>> End With
>>End Sub
>
>先ほどの悩みは、今、解決しました
>↓AddItemの後ろの「.(ドット)」を外してみました。
>ComboBox1.AddItem .Cells(1, i).Value
>ドットを外してみたところ、うまくいきましたが、コンボボックス1で選択しても、
>コンボボックス2は空白のままで、選択するリストが出てきません。
>
>なんか、問題でもあるのでしょうか?
>
>CBC=ComboBox1.ListIndex + 1 のコードの +1の意味がいまいち理解できてません。
Private Sub ComboBox1_Change()
msgbox ComboBox1.ListIndex
End Sub
でComboBox1.ListIndexを確認してみて下さい。
>申し訳ありませんが、初心者の私に教えていただけないでしょうか?
>ところどころ、解読できないVBAの記述があります
>
>よろしくお願いします
|
|