VBA中的范围select错误
我在ThisWorkBook下编写了一个VBA代码,以便在打开Excel文件时代码将自动运行。 代码使用xlDown
selectdynamic范围,然后根据select将名称添加到工作簿。 检查下面的代码:
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”:范围类的select方法失败
此错误消息突出显示第二行:
Sheets("sheet1").Range("E2", Sheets("sheet1").Range("E2").End(xlDown)).Select
而当我使用相同的select方法来清除相同的范围,它没有像下面的错误工作:
Sheets("sheet1").Range("E2", Sheets("sheet1").Range("E2").End(xlDown)).Clear
除非你不需要下面的数据 – 我会用xlUp
来代替,以防止在E2中只有一个值时发生错误:
With Sheets("sheet1") ActiveWorkbook.Names.Add "DateList", .Range(.Cells(2, 5), .Cells(.Rows.Count, 5).End(xlUp)) End With
用这个:
With Sheets("sheet1") ActiveWorkbook.Names.Add "DateList", .Range("E2:E" & .[E:E].Find("*", , , , , xlPrevious).Row) End With