2017-04-25 18 views
0

6つの依存コンボボックスがあり、隣にあるセルが空白になると空白にリセットされます。メインリストが値に設定されている限り、コードは正常に動作します。ただし、メインコンボボックスがデフォルト値に設定されている場合、依存ボックスに選択する値はありません。コンボボックスは、左側のセルが空白の場合、最初の「空白」エントリにリセットされます。エラー

実行時エラー308:ListIndexプロパティを設定できませんでした。プロパティ値が無効です。

シートが最初に開かれたときも、私は""値がチェックされて細胞内に何も入力することはできません。

別のIfステートメントでコードをラップしようとしましたが、コードがとにかく実行されているように見えるので、何か間違っている必要があります。

誰かが見て、あなたが問題を見ることができるかどうか教えてもらえますか?事前に

おかげ

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    If cboShiftsList.Object.ListIndex > -1 Then 
     If Range("I15") = "" Then 
      cboDependentShiftList.Object.ListIndex = 0 
     End If 
     If Range("I16") = "" Then 
      cboDependentShiftList1.Object.ListIndex = 0 
     End If 
     If Range("I17") = "" Then 
      cboDependentShiftList2.Object.ListIndex = 0 
     End If 
     If Range("I18") = "" Then 
      cboDependentShiftList3.Object.ListIndex = 0 
     End If 
     If Range("I19") = "" Then 
      cboDependentShiftList4.Object.ListIndex = 0 
     End If 
     If Range("I20") = "" Then 
      cboDependentShiftList5.Object.ListIndex = 0 
     End If 
    End If 
End Sub 

私はWorkbook_Openイベントにこのコードを持っている:ここで

'Populate combo box with Shifts categories. 

Dim rng As Range 
Dim ws As Worksheet 

Set ws = Worksheets("Staff Page") 
Worksheets("Staff Page").cboShiftsList.Clear 

For Each rng In ws.Range("ShiftSelectList") 
    Worksheets("Staff Page").cboShiftsList.AddItem rng.Value 
    Worksheets("Staff Page").cboShiftsList.Object.ListIndex = 0 
Next rng 

を誰が見てみたい場合は、ファイルへのリンクです。私はこの問題について十分に分かち合っていないと感じ、おそらくファイルが役立つのを見るでしょう。再度、感謝します!解決

ComboBox_Issues.xlsm

+0

は何をしたい 'cboDependentShiftList.ListIndex = -1'はありませんか? –

+0

それを試して、私はまだそのエラーを取得しています。私はSub Workbook Openイベントにコードを配置したことにも言及する必要があります。元の投稿を反映して更新しました。 –

+0

あなたのコードで問題を見ることができません。データの検証や何かが原因である可能性があります。 –

答えて

0

!!

@ A.S.Hの提案を使用して、メインコンボボックスでチェックしていた値を変更したところ、完全に機能しました。
ありがとう@ A.S.H!ここで

は、最終的なコードは次のとおりです。

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
If cboShiftsList.Object.ListIndex > 0 Then 
    If Range("I15") = "" Then 
    cboDependentShiftList.Object.ListIndex = -1 
     End If 
    If Range("I16") = "" Then 
    cboDependentShiftList1.Object.ListIndex = -1 
     End If 
    If Range("I17") = "" Then 
    cboDependentShiftList2.Object.ListIndex = -1 
     End If 
    If Range("I18") = "" Then 
    cboDependentShiftList3.Object.ListIndex = -1 
     End If 
    If Range("I19") = "" Then 
    cboDependentShiftList4.Object.ListIndex = -1 
     End If 
    If Range("I20") = "" Then 
    cboDependentShiftList5.Object.ListIndex = -1 
    End If 
End If 
End Sub 
関連する問題