组合框不添加已定义的命名范围

时间:2017-06-12 20:45:14

标签: excel excel-vba combobox vba

我在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

1 个答案:

答案 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