2017-07-08 6 views
0

私が持っている2隻の潜水艦:VBAエクセルのComboBoxエラー381

1)

Sub InitializeComboBoxes() 

Dim lastRowOfPositions As Integer, lastRowOfShifts As Integer 

Application.ScreenUpdating = False 

' POPULATE POSITIONS COMBOBOX 
lastRowOfPositions = Module2.last_row("Menu", "_positions") 
ActiveWorkbook.Worksheets("Menu").PositionsComboBox.List = ActiveWorkbook.Worksheets("Menu").Range(Cells(2, Range("_positions").Column), Cells(lastRowOfPositions, Range("_positions").Column)).Value 
ActiveWorkbook.Worksheets("Menu").PositionsComboBox.ListIndex = 0 

End Sub 

2)

Sub InitializeEmployeeComboBox() 

Dim lastRowOfEmployees As Integer 
Dim sheetName As String 
Dim ws As Worksheet 

sheetName = ActiveWorkbook.Worksheets("Menu").ShiftsComboBoxRemove.Value 
Set ws = ActiveWorkbook.Worksheets(sheetName) 

Application.ScreenUpdating = False 

Dim helperText As String 

helperText = sheetName & "Name" 
lastRowOfEmployees = Module2.last_row(sheetName, sheetName & "Name") 

ActiveWorkbook.Worksheets("Menu").EmployeesComboBox.List = ws.Range(ws.Cells(2, ws.Range(helperText).Column), ws.Cells(lastRowOfEmployees, ws.Range(helperText).Column)).Value 
ActiveWorkbook.Worksheets("Menu").EmployeesComboBox.ListIndex = 0 

End Sub 

問題はである: 1)ActiveWorkbook.Worksheets("Menu").PositionsComboBox.List = ActiveWorkbook.Worksheets("Menu").Range(Cells(2, Range("_positions").Column), Cells(lastRowOfPositions, Range("_positions").Column)).Value - これはフォームです最初のサブとそれは問題なく、問題なく動作します。

2)ActiveWorkbook.Worksheets("Menu").EmployeesComboBox.List = ws.Range(ws.Cells(2, ws.Range(helperText).Column), ws.Cells(lastRowOfEmployees, ws.Range(helperText).Column)).Value - 2番目のサブ。私にとって

、彼らは、第二のエラー381 ヘルプを与え、ちょうどここ

まず1が正常に動作します(1)私は同じシートから範囲を使用する場所とは違って、私は、別のシートから範囲を使用し、コードの同じ部分です私はそれが原因でエラーを見つけることができませんので、してください

+0

'ws.Range(ws.Reset(2、ws.Range(helperText).Column)、wsを確認しましたか?セル(lastRowOfEmployees、ws.Range(helperText).Column))。Value'は値として返しますか? – UGP

+0

私はそれに私の指を置くことはできませんが、コードがどこにあるのかという理由があったのと同じような問題を漠然と思い出してしまいます。標準コードモジュールからコードを実行してみてください。 – Variatus

答えて

0

他のシートから範囲でコンボボックスを設定しようとすると問題があるようです。私は配列を作成し、範囲値を設定してコンボボックスに配列を代入することで作業しました