Excel错误:删除logging:从/xl/worksheets/sheet5.xml部分sorting

重新打开一个启用macros的Excel电子表格时,我收到了标题中提到的错误。 电子表格大约有8个标签,它们的格式几乎完全一样。 我的macros根据最后一列中的数据validation单元格值将行移动到不同的工作表。 只有一行代码可以对任何东西进行sorting,它将sorting表6,而不是表5。

Worksheets("Follow-Ups").Range("A:AD").Sort Key1:=Range("AC2"), Order1:=xlAscending, Header:=xlYes 

我已经看了一些关于这个错误的StackOverflow的其他类似的问题,但似乎并没有任何明确的理由说明为什么发生这种情况。

我在我的VBA代码中混淆了一些东西,但是错误似乎总是返回。 我正在将我的数据复制到一个全新的工作簿并重新执行代码。 我也将它保存为一个二进制的Excel文件,而不是启用macros。

有没有其他人遇到这个错误,还有什么其他可能的解决scheme,我可以尝试防止再次发生此错误。

可能是由于不合格的范围。

Worksheets("Follow-Ups").Range("A:AD").Sort Key1:=Range("AC2"), ...

  ^^^^^^ 

假设在运行这个语句时,当前活动的工作表不是“Follow-Ups”,而是另一个(即Sheet5 )。 您将使用属于另一个工作表(当前活动的工作表)的键范围对“Follow-Up”进行sorting。 这导致运行时错误。

限定范围是强制性的:

 Worksheets("Follow-Ups").Range("A:AD").Sort Key1:=Worksheets("Follow-Ups").Range("AC2"), Order1:=xlAscending, Header:=xlYes 

你可以使用With子句来简化它:

 With Worksheets("Follow-Ups") .Range("A:AD").Sort Key1:=.Range("AC2"), Order1:=xlAscending, Header:=xlYes End With 

VBA显示的错误可能是由于Sheet5是活动工作表,当然,它不能使用范围“AC2”作为关键。