0

選択したドロップダウンリスト項目に従ってシートに移動するための以下のコード行を書きました。初めて機能しますが、次回実行しようとすると、実行時エラー9 - 下付き文字が範囲外のエラーが発生します。
「ActiveWorkbook.Sheets(cboDependentList.Value).Activate」という行でエラーが発生します。

以下はコード行です。

'Populate dependent combo box with appropriate list items                                 
'according to selection in cboCategoryList.
Sub test()                                                   
    Dim rng As Range   
    Dim ws As Worksheet    
    Dim str As String     

    Set ws = Worksheets("Lists")     
    str = cboCategoryList.Value      
    Me.cboDependentList.Clear       

    On Error Resume Next         
    For Each rng In ws.Range(str)        
      Me.cboDependentList.AddItem rng.Value       
    Next rng         

End Sub

Sub cboDependentList_Change()        
      ActiveWorkbook.Sheets(cboDependentList.Value).Activate      
End Sub

Private Sub Worksheet_Activate()         
    'Populate combo box with inventory categories.         
    Dim rng As Range         
    Dim ws As Worksheet        

    Set ws = Worksheets("Lists")         
    Me.cboCategoryList.Clear        

    For Each rng In ws.Range("Category")         
      Me.cboCategoryList.AddItem rng.Value            
    Next rng                      

End Sub             
4

1 に答える 1

0

Excel のデバッガーは、実際にエラーを引き起こしたコード行を強調表示せず、代わりに呼び出し元の 1 つ (呼び出し履歴の上位) を強調表示することがあります。

この場合、activate メソッドが実行時エラー 9 - 下付き文字が範囲外のエラーを直接引き起こしているわけではありませんが、サブルーチン Worksheet_Activate での影響はある可能性があります。Activate を呼び出す行にブレークポイントを設定し、デバッグ モードでコードをステップ実行することをお勧めします。これが機能しない場合は、サブルーチン Worksheet_Activate の開始時にブレークポイントを設定する必要がある場合があります。

于 2013-07-19T12:18:54.840 に答える