我在sheet1中设置了两个组合框。我需要将表单列表添加到组合框中,这样可以正常工作。我需要将第一列sheet2添加到组合框2,第一个单元格作为名称(称为“名称”)。此代码适用于我的UserForm,使用Me而不是Sheet1,但使用其中一个对我不起作用。
我收到“对象不支持此属性或方法”错误。
谢谢,
Private Sub Workbook_Open()
Dim refSheet As Worksheet
Set refSheet = ActiveWorkbook.Sheets(2)
Dim oSheet As Excel.Worksheet
For Each oSheet In ActiveWorkbook.Sheets
Sheet1.ComboBox1.AddItem oSheet.Name
Next oSheet
Dim lastrow As Long
lastrow = refSheet.Cells(Rows.Count, 1).End(xlUp).Row
With refSheet.Columns(1)
Range(Cells(1, 1), Cells(lastrow, 1)).Select
Selection.CreateNames Top:=True
End With
Sheet1.ComboBox2.RowSource = "Name"
End Sub
答案 0 :(得分:1)
参见表格:
lastrow = refSheet.Cells(Rows.Count, 1).End(xlUp).Row
应该是:
lastrow = refSheet.Cells(refSheet.Rows.Count, 1).End(xlUp).Row
使用"使用"这里:
With refSheet.Columns(1)
Range(Cells(1, 1), Cells(lastrow, 1)).Select
Selection.CreateNames Top:=True
End With
你应该将它与点一起使用:
With refSheet.Columns(1)
.Range(.Cells(1, 1), .Cells(lastrow, 1)).Select
Selection.CreateNames Top:=True
End With
(注意范围和单元格之前的点) 不使用#34;使用"块指的是ActiveSheet