2

我在打开的按钮的单击事件中编写以下代码行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
4

3 回答 3

1

那是因为你Cells没有完全定义。

尝试这个

With Worksheets("Sheet1")
    .Range(.Cells(2, 1), .Cells(lastrow, 5)).Sort _
    Key1:=.Range("E2"), Order1:=xlDescending
End With
于 2012-06-08T07:22:05.073 回答
-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

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

于 2014-07-29T06:19:30.337 回答
-3

上面的解决方案肯定可以解决问题。但简单地在顶部添加一行也可以正常工作。

Sheets("Sheet1").activate
于 2014-07-14T08:06:52.543 回答