表错误1004“对象'_Worksheet'的方法'范围'的Excel VBA排序失败

时间:2019-09-27 16:26:46

标签: excel vba

我正在使用excel中的表,并想按“提交的日期”对其中的数据进行排序。但是,我不断收到错误

  

“对象'_Worksheet'的方法'范围'失败。

我尝试了多种方法来完成此操作,但是所有方法都返回相同的错误。

代码正在与包含表的工作表分开的单独工作表中编写,因为这可能是错误的根源。

下面是我最近解决此问题的简要概述。

Sheets("Database").ListObjects("DatabaseTable").Sort.SortFields.Clear
Sheets("Database").ListObjects("DatabaseTable").Sort.SortFields.Add Key:=Range("DatabaseTable[Date Submitted]"), Order:=xlAscending
Sheets("Database").ListObjects("DatabaseTable").Sort.Apply

1 个答案:

答案 0 :(得分:4)

在工作表代码模块中使用不合格的Range调用时,隐式限定符为Me,即包含代码的工作表,或者为Sheet1-参见this question

所以

Range("DatabaseTable[Date Submitted]")

等同于

Me.Range("DatabaseTable[Date Submitted]")

Sheet1.Range("DatabaseTable[Date Submitted]")

由于表格位于Sheet2上,因此您需要:

Sheet2.Range("DatabaseTable[Date Submitted]")

摘要(来自链接的问题):

  

避免记住其中任何一项的简单方法是始终完全合格任何WorksheetsSheetsRangeCellsNames参考。*

ColumnsRows也需要排位赛。