VBA中的范围选择错误

时间:2016-02-09 14:14:22

标签: excel vba excel-vba

我在ThisWorkBook下编写了一个VBA代码,以便在打开Excel文件时代码自动运行。代码使用xlDown选择动态范围,然后根据选择为工作簿添加名称。检查以下代码:

Private Sub Workbook_Open()
     Sheets("sheet1").Range("E2", Sheets("sheet1").Range("E2").End(xlDown)).Select
     ActiveWorkbook.Names.Add Name:="DateList", RefersTo:=Selection
End Sub

我很确定我写得正确,但我收到如下错误信息:

  

运行时错误'1004':选择范围类失败的方法

此错误消息突出显示第二行:

Sheets("sheet1").Range("E2", Sheets("sheet1").Range("E2").End(xlDown)).Select

当我使用相同的选择方法来清除相同的范围时,它可以正常工作,如下所示:

Sheets("sheet1").Range("E2", Sheets("sheet1").Range("E2").End(xlDown)).Clear

2 个答案:

答案 0 :(得分:1)

使用它:

With Sheets("sheet1")
     ActiveWorkbook.Names.Add "DateList", .Range("E2:E" & .[E:E].Find("*", , , , , xlPrevious).Row)
End With

答案 1 :(得分:1)

除非下面有 想要的数据,否则我会选择xlUp以防止出现仅 E2中的值:

With Sheets("sheet1")
    ActiveWorkbook.Names.Add "DateList", .Range(.Cells(2, 5), .Cells(.Rows.Count, 5).End(xlUp))
End With