满足特定条件时删除工作表

时间:2021-03-19 19:39:13

标签: excel vba if-statement time-series worksheet

我有一个文件 A.xlsx,其中包含具有多个工作表的时间序列数据。 D列表示年,E列表示月。年和月都是数字。我写了一个代码来删除任何在 2020.9(九月)之前有数据的工作表。但是,结果还包含一些在此时间点之前具有数据的工作表。有没有关于如何改进代码的建议?

input("Press Enter to continue...")

1 个答案:

答案 0 :(得分:1)

您当前的代码只会删除同时满足两个条件的那些工作表:(1) 年份低于 2020 并且 (2) 月份低于 9。这种组合允许所有 9 月至 12 月无论哪一年都可以通过。

你应该更换

If sh.Range("D1").End(xlDown) < 2020 And sh.Range("E1").End(xlDown) < 9 Then  

类似的东西

If sh.Range("D1").End(xlDown) < 2020 _
   Or (sh.Range("D1").End(xlDown) = 2020 And sh.Range("E1").End(xlDown) < 9) Then