应用程序定义或对象定义的错误在vba中

时间:2012-06-08 06:21:16

标签: excel-vba vba excel

我正在Sheet2上的按钮的点击事件中编写以下代码行。但这给了我Object Defined or Application Defined错误。如果我删除了Worksheets("Sheet1"),那么它将正常工作,但会选择Sheet2's范围。我希望范围为Sheet1

所以请帮助我。

Worksheets("Sheet1").Range(Cells(2, 1), Cells(lastrow, 5)).Sort _
Key1:=Range("E2"), Order1:=xlDescending

3 个答案:

答案 0 :(得分:1)

这是因为您的Cells未完全定义。

试试这个

With Worksheets("Sheet1")
    .Range(.Cells(2, 1), .Cells(lastrow, 5)).Sort _
    Key1:=.Range("E2"), Order1:=xlDescending
End With

答案 1 :(得分:-2)

我遇到了与VBA类似的问题,我想和你分享我的解决方案,这是我的代码:

Range("F76").Select
With Selection
.HorizontalAlignment = xlCenter
.Font.Bold = True
.Font.Color = RGB(0, 112, 192)
.Merge
.NumberFormat = "yyyy-mm-dd;@"
With .Validation
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="=Data"
End With
End With

这个片段给我带来了麻烦。正确定义了单元格(代码中较早的是片段激活了片段)。

解决方案只包含一行代码,我只需要添加

.Clear

到代码,一切都恢复了。我希望这会对某人有所帮助。

答案 2 :(得分:-3)

上述解决方案肯定可以解决问题。 但只是在顶部添加一行也可以正常工作。

Sheets("Sheet1").activate