我正在使用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
答案 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]")
摘要(来自链接的问题):
避免记住其中任何一项的简单方法是始终完全合格任何
Worksheets
,Sheets
,Range
,Cells
或Names
参考。*
Columns
和Rows
也需要排位赛。