我怎样才能让我的工作簿在某个date到期?

我发出一些工作试卷,虽然这些工作表在某些时候会类似于真实的东西,所以我不希望人们在几年内使用它们。

我想我的代码删除活动工作簿中的工作表的内容,因为这工作表作为validation,如果我删除将停止访问工作簿。

Private Sub Workbook_Open() Dim MyDate As Date Dim Today As Date MyDate = #1/5/2015# Today = Now() If ActiveWorkbook = Workbooks("SALARY CALCULATOR BETA1.xlsm") Then If Today > MyDate Then Worksheets("Lock").Range("A1:T115").Select Selection.Clear End If End If End Sub 

代码返回“对象不支持对象或属性”

你不能只比较两个对象(你的情况下的工作簿)。 尝试比较他们的名字。

所以,而不是:

 If ActiveWorkbook = Workbooks("SALARY CALCULATOR BETA1.xlsm") Then 

用这个:

 If ActiveWorkbook.Name = "SALARY CALCULATOR BETA1.xlsm" Then 

或者,为了避免重命名混淆,请使用以下命令:

 If ActiveWorkbook.Name = ThisWorkbook.Name Then 

ThisWorkbook总是意味着运行macros的工作簿(基本上意味着包含macros的工作簿)。

编辑

这是一个适用于我的单线程:

 Private Sub Workbook_Open() If Date > #1/5/2016# Then Worksheets("Lock").Range("A1:T115").Clear End Sub