我有两个替补:VBA Excel中的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
- 从第二子。
对我来说,他们是同一段代码,只是这里我使用范围从不同的板材,与(1)其中,我使用范围从同一张
第一个工作正常,第二次给了错误381 帮助请,因为我找不到错误导致它
你检查什么'ws.Range(ws.Cells(2 ws.Range(helperText).COLUMN),WS。单元格(lastRowOfEmployees,ws.Range(helperText).Column)).value'作为值返回? – UGP
我不能完全理解它,但我隐约记得我曾经有过类似的问题,这在代码的位置有其原因。尝试从标准代码模块运行代码。 – Variatus