0

我正在为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
4

1 回答 1

0

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

我能想到的可能有两种保护,它们会阻止您向该工作簿添加工作表。

  1. 通过代码
  2. 工作簿结构受到保护。

如果您想玩弄工作簿而不打算破解它,那么您有几个选择。

  1. 如果保护是通过代码进行的,那么该文件可以是支持宏的 xls 或 xlsm 文件。在这里,作者可能所做的是编写了一个代码,在您添加工作表的那一刻,它会立即被删除。在这种情况下,只需将文件重新保存为 xlsx 文件即可。关闭文件并重新打开它,这样您就可以在其中添加工作表并使用它而无需破解它。
  2. 如果工作簿结构受到保护,那么除了将现有工作簿中的单元格复制(如果允许)到新工作簿然后使用它之外,您无能为力
于 2013-09-30T19:07:00.250 回答