我发送了一些试用工作表,虽然这些工作表在某些时候会像真实的东西一样,所以我不想让人们使用它们,例如在几年之内。
我希望我的代码删除活动工作簿中工作表的内容,因为此工作表充当验证,如果我删除将停止访问工作簿。
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
守则返回"对象不支持对象或属性"
答案 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