2016-01-08 46 views
1

我正在發送一些工作試用工作表,雖然這些工作表在某些時候會類似於真實的東西,所以我不想讓人們在幾年內使用它們。如何讓我的工作簿在某個日期到期?

我希望我的代碼刪除活動工作簿中工作表的內容,因爲此工作表充當驗證,如果我刪除將停止訪問工作簿。

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 

代碼返回「對象不支持對象或屬性」

+2

什麼是你的問題? –

+0

我想離開代碼。例如。 '工作表(「鎖定」)範圍(「A1:T115」)。清除'我更喜歡使用ISO標準日期,只是爲了確保。 '2015-05-01'在你的情況。除此之外,你的代碼似乎沒問題。 – vacip

+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 
+0

返回一個對象定義的錯誤,但我看到你在說什麼,是不是從那裏的代碼選擇部分混淆的東西? –

+0

嘗試使用'thisworkbook.name'編輯我的編輯。哪一行產生錯誤? – vacip

+0

另外,我不確定你是否需要If語句。打開工作簿後,該工作簿將成爲活動工作簿,您可以繼續並刪除不必要的數據。 – vacip

相關問題