|
こんにちは。
今まで動いていたんですが、読込みエラーになってしまい、作り直しています。
で、以前は問題なかったもので、同じ命令文にしたのですが、エラーになるため、
参考書を参考に作り直しました。でも”型が一致しません”とエラーがでてしまいます。どこがいけないのか、どうすれば対処できるのか教えてください。お願いします。
worksheets("品種")にA1:D1にはコンボボックス(ここでは"区分”)に入る値
それに関連してcells(.row.count,i).End(xlUp).Rowまでリストが作成してあります。
コンボ”区分”で選択した値から関連のあるリストの列をcomboBox1に表示して選択するユーザーフォームを作成しています。
区分1 区分2 区分3 実際にはA1:D1まで4種類あります
リスト1 リスト2-1 リスト3-1
リスト2 リスト2-2 リスト3-2
リスト3 リスト3-3 ←こんな感じのリストがworksheets("品種")にある
リスト4
以前の命令文:
'区分表示
Private Sub UserForm_Initialize()
With Worksheets("品種")
Da = Range("A1").CurrentRegion.Value
For i = 2 To .Range("A1").End(xlToRight).Column
Me.区分.AddItem Da(1, i)
Next i
End With
End Sub
'品種表示
Private Sub 区分_Change() ↓Comboboxは3つあるので、同じ命令文が
'品種名1 あと二つつきます(ComboBoxの名称は変更)
'Me.区分.Clear
With Worksheets("品種")
For i = 1 To .Range("A1").End(xlToRight).Column
If Me.区分.Value = Da(1, i) Then
For ii = 2 To Cells(Rows.Count, i).End(xlUp).Row
Me.ComboBox1.AddItem Da(ii, i)
Next ii
Exit For
End If
Next i
End With
End Sub
変更後:
currentRegionは空白のあるリストということでAの列と行を空白にしました。
'区分表示
Private Sub UserForm_Initialize()
With Worksheets("品種")
Da = Range("B2").CurrentRegion.Value
For i = 2 To .Range("B2").End(xlToRight).Column
Me.区分.AddItem Da(2, i)
Next i
End With
End Sub
'品種表示
Private Sub 区分_Change()
'品種名1
'Me.区分.Clear
With Worksheets("品種")
For i = 2 To .Range("B2").End(xlToRight).Column
If Me.区分.Value = Da(2, i) Then
For ii = 3 To Cells(Rows.Count, i).End(xlUp).Row
Me.ComboBox1.AddItem Da(ii, i)
Next ii
Exit For
End If
Next i
End With
End Sub
|
|