2016-12-02 3 views
0

私は現在userformをビルドしています。Excelでvbaを実行しています。リストボックスの1つに値を設定したいとします。別のワークブックのセルの範囲から移入することはできませんか?ワークブックの参照とシート名が正しいです、私はコピーし、作業コードからテストしました。これは、エラーメッセージどのように別のブックのセルの範囲からユーザーのリストボックスを設定しますか。

実行時エラー「381」です

Private Sub UserForm_Initialize() 

     Shop_UserForm_ClockIn_Listbox_EmployeeName.List = Workbooks("hub.xlsb").Sheets("EmployeeNames").Range("f2").value    
End Sub 

私は国民にプライベートサブを設定しようとしたが、私は同じ結果を得る、 は、Listプロパティを設定できませんでした。無効なプロパティ配列インデックス

+0

を、 ' .List'メソッドは配列を必要とするので、配列を割り当てます。その1D配列。 – L42

答えて

0

Listに単一の値を割り当てようとしているため、コードがクラッシュしています。

これは動作します:

Private Sub UserForm_Initialize()  
    Shop_UserForm_ClockIn_Listbox_EmployeeName.List = Workbooks("hub.xlsb").Sheets("EmployeeNames").Range("f2:f3").value    
End Sub 

それは値の配列を割り当てているからです。


あなたは本当にただ1つの値をListを設定したい場合は、次のいずれかを実行できます:@ YowE3Kで述べたように

Private Sub UserForm_Initialize() 
    Shop_UserForm_ClockIn_Listbox_EmployeeName.List = Array(Workbooks("hub.xlsb").Sheets("EmployeeNames").Range("f2").value) 
End Sub 

または

Private Sub UserForm_Initialize() 
    Shop_UserForm_ClockIn_Listbox_EmployeeName.AddItem Workbooks("hub.xlsb").Sheets("EmployeeNames").Range("f2").value    
End Sub 
関連する問題