我需要代码来取消阻止在excel vba中添加新的工作表

时间:2013-09-30 18:06:44

标签: windows excel vba excel-vba

我正在为excel写一个插件。它应该创建一个新的工作表,然后从预先存在的工作表中复制数据。

现在整个加载项可以在另一个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

1 个答案:

答案 0 :(得分:0)

与上面提到的pnuts一样,如果您搜索Google / SO,您会发现大量关于黑客密码的帖子。但是我的答案不是关于破解密码,而是关于你可以用来使用工作簿的替代方法。如果有人保护了Excel文件,那么很明显你并不打算捣乱它:)作为个人选择,我不协助黑客攻击。如果你能从作者那里得到密码那么就没有它了。

我可以想到有两种保护措施可以阻止你在工作簿中添加工作表。

  1. 通过代码
  2. 工作簿结构受到保护。
  3. 如果您想要使用工作簿而不是黑客攻击,那么您有几种选择。

    1. 如果保护是通过代码,则该文件可以是支持宏的xls或xlsm文件。在这里,作者可能已经完成了编写代码,在您添加工作表的那一刻,它会被立即删除。在这种情况下,只需将文件重新保存为xlsx文件即可。关闭文件并重新打开,以便您可以向其中添加工作表并使用它而不进行黑客攻击。
    2. 如果工作簿结构受到保护,那么除了将现有工作簿中的单元格复制(如果允许)到新工作簿然后再使用它之外,您无能为力。