如何让我的工作簿在某个特定日期到期?

时间:2016-01-08 11:30:44

标签: excel vba excel-vba

我发送了一些试用工作表,虽然这些工作表在某些时候会像真实的东西一样,所以我不想让人们使用它们,例如在几年之内。

我希望我的代码删除活动工作簿中工作表的内容,因为此工作表充当验证,如果我删除将停止访问工作簿。

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

守则返回"对象不支持对象或属性"

1 个答案:

答案 0 :(得分:2)

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

所以而不是:

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

使用它:

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

或者,为避免重命名造成混淆,请使用:

If ActiveWorkbook.Name = ThisWorkbook.Name Then

ThisWorkbook始终表示运行宏的工作簿(基本上是指包含宏的工作簿。)

修改

这是一个适合我的单行:

Private Sub Workbook_Open()

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

End Sub