VBA 根据条件删除工作表
VBA delete sheets based on criteria
我想在 VBA 上创建一个宏,如果特定值小于另一个 sheet 中的另一个值,它应该完全删除 sheet。
所以我得到 sheet1,例如,"A1" 范围内有一个日期。
现在我希望所有其他 sheets(实际上只是其中的一些,但如果没有解决方案,我也可以接受所有其他人)比较一个值,例如在 Cell "B10" 中,其中包含一个公式,该公式作为输出具有日期。
如果比较后的值落后于 sheet1 中的日期,那么您必须删除 sheet.
谢谢。
您需要这样的东西...只需逐步完成工作簿中的所有工作sheet(向后,因为您要删除 sheet)并针对 [=11= 进行测试],或者您的主要 sheet 所在的任何地方...您没有提供足够的详细信息,但您需要指定 sheet 您的测试对象,否则这将不起作用。
Sub Test()
Application.DisplayAlerts = False
For i = ActiveWorkbook.Worksheets.Count To 2 Step -1
If Sheets(i).Range("B10").Value < Sheets(1).Range("A1").Value Then
Sheets(i).Delete
End If
Next i
Application.DisplayAlerts = True
End Sub
我想在 VBA 上创建一个宏,如果特定值小于另一个 sheet 中的另一个值,它应该完全删除 sheet。
所以我得到 sheet1,例如,"A1" 范围内有一个日期。 现在我希望所有其他 sheets(实际上只是其中的一些,但如果没有解决方案,我也可以接受所有其他人)比较一个值,例如在 Cell "B10" 中,其中包含一个公式,该公式作为输出具有日期。 如果比较后的值落后于 sheet1 中的日期,那么您必须删除 sheet.
谢谢。
您需要这样的东西...只需逐步完成工作簿中的所有工作sheet(向后,因为您要删除 sheet)并针对 [=11= 进行测试],或者您的主要 sheet 所在的任何地方...您没有提供足够的详细信息,但您需要指定 sheet 您的测试对象,否则这将不起作用。
Sub Test()
Application.DisplayAlerts = False
For i = ActiveWorkbook.Worksheets.Count To 2 Step -1
If Sheets(i).Range("B10").Value < Sheets(1).Range("A1").Value Then
Sheets(i).Delete
End If
Next i
Application.DisplayAlerts = True
End Sub