Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何使工作簿在特定日期过期?_Vba_Excel - Fatal编程技术网

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”)。选择所选内容。清除”