Vba 如何使工作簿在特定日期过期?
我发送了一些试用工作表的工作,虽然这些将类似于真实的东西在某些时候,所以我不希望人们使用他们,如在一年的时间 我希望我的代码删除活动工作簿中工作表的内容,因为此工作表充当验证,如果删除,将停止对工作簿的访问Vba 如何使工作簿在特定日期过期?,vba,excel,Vba,Excel,我发送了一些试用工作表的工作,虽然这些将类似于真实的东西在某些时候,所以我不希望人们使用他们,如在一年的时间 我希望我的代码删除活动工作簿中工作表的内容,因为此工作表充当验证,如果删除,将停止对工作簿的访问 Private Sub Workbook_Open() Dim MyDate As Date Dim Today As Date MyDate = #1/5/2015# Today = Now() If ActiveWorkbook = Workbooks("SALARY CALCUL
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
代码返回“Object不支持Object或property”您不能像这样只比较两个对象(本例中是工作簿)。试着比较他们的名字 因此,不是:
If ActiveWorkbook = Workbooks("SALARY CALCULATOR BETA1.xlsm") Then
使用以下命令:
If ActiveWorkbook.Name = "SALARY CALCULATOR BETA1.xlsm" Then
If ActiveWorkbook.Name = ThisWorkbook.Name Then
或者,为了避免重命名时出现混淆,请使用以下命令:
If ActiveWorkbook.Name = ThisWorkbook.Name Then
此工作簿始终指运行宏的工作簿(基本上指包含宏的工作簿)
编辑
这是一条适合我的单行线:
Private Sub Workbook_Open()
If Date > #1/5/2016# Then Worksheets("Lock").Range("A1:T115").Clear
End Sub
你的问题是什么?我不想在代码中选择。例如,
工作表(“锁定”)。范围(“A1:T115”)。清除
,我更喜欢使用ISO标准日期,只是为了确保<代码>2015-05-01在您的情况下。除此之外,您的代码似乎还可以。对不起,代码当前不起作用。我不知道如何修复它以使其正常运行。例如,在某个日期,它会删除工作表的内容。什么会阻止用户将内容复制并粘贴到不包含VBA内容的新电子表格工作簿中?工作簿本身很广泛,并且清除了其中的内容vba作为密码识别,自动“隐藏”,因此一旦他们在该日期打开工作簿,他们的密码将无效,因此他们将无法访问文档功能。这将返回一个对象定义的错误,但我明白你的意思,不是因为代码中的选择部分使事情变得混乱了吗?请使用thisworkbook.name
尝试我的编辑。哪一行产生错误?另外,我不确定您是否需要If语句。打开工作簿后,该工作簿将是活动工作簿,您只需继续并删除不必要的数据。有关适用于我的简单解决方案,请参阅我的编辑。错误来自“工作表(“锁定”)。范围(“A1:T115”)。选择所选内容。清除”