2013-09-30 23 views
0

我正在爲excel寫入一個加載項。它應該創建一個新的工作表,然後從預先存在的工作表複製數據。我需要代碼來取消阻止在excel vba中添加新工作表

現在整個加載項在另一個excel文檔上工作。但是我需要它工作的人已經禁用了添加新工作表的功能。

有人可以告訴我什麼代碼啓用這個?

Sub Auto_Open() 

Dim WSheet As Worksheet 
On Error Resume Next 
Set WSheet = Sheets("DispersionList") 
On Error Resume Next 
Dim works As Worksheet 
ActiveWorkbook.Unprotect 

If WSheet Is Nothing Then 
Set works = Worksheets.add(after:=Sheets(Worksheets.Count)).Name = "DispersionList" 
Call makeFormat 

Worksheets(1).Activate 
End If 

DispersionForm.Enabled = True 
DispersionForm.Show 

End Sub 
+0

戲是講保護?這個工作簿.unprotect(「密碼」) –

+1

上述的[reverse](http://stackoverflow.com/questions/3690793/how-to-protect-excel-workbook-using-vba),但有一些完整的代碼塊。你知道密碼嗎? – pnuts

+0

@pnuts不幸的是我不知道密碼,他們的vba項目也是密碼保護,所以我不能看到他們做了什麼,我正在嘗試尋找解決方法> – MiniMite

回答

0

就像上面提到的pnuts一樣,如果你搜索Google/SO,你會發現很多關於竊取密碼的帖子。不過,我的答案不是關於竊取密碼,而是關於您可以使用的工作簿的替代方法。如果有人保護了Excel文件,那麼很明顯,你並不打算搗鼓它:)作爲個人選擇,我不協助黑客攻擊。如果你可以從作者那裏得到密碼,那麼就沒有這樣的東西。

可以有兩種保護方式,我可以想象它會阻止您將工作表添加到該工作簿。

  1. 通過代碼
  2. 工作簿結構的保護。

如果你想玩工作簿而不是打算盜號它然後你有幾個選項。

  1. 如果通過代碼進行保護,則該文件可以是支持宏的xls或xlsm文件。在這裏,作者可能會做的是寫一個代碼,在添加工作表的那一刻,它會立即被刪除。在這種情況下,只需將文件重新保存爲xlsx文件即可。關閉文件並重新打開它,以便您可以添加工作表並在沒有黑客的情況下使用它。
  2. 如果工作簿結構保護,那麼有沒有什麼你可以複製,除了做(如果允許的話)從現有的工作簿中的細胞到一個新的工作簿,然後用它
+0

謝謝,我不是試圖破解工作簿,我儘量避免這種情況。我只需要將它的一些信息處理成當前宏不支持的另一種格式。最簡單的就是創建一個新的工作表,然後將信息複製到它。 – MiniMite

+0

這正是我在上面第2點中提出的建議。 :) –

+0

這是有點偏離主題,但我不認爲我需要爲此發佈一個全新的questiion。我在代碼中創建了一個新的工作簿 Dim book As Workbook Set book = Workbooks.add 但現在我想將工作簿保存在原始文件的相同文件夾中。 (使用相對路徑)我使用哪些代碼? – MiniMite

相關問題