2

以下是我的 C# 代码,我试图通过传递密码来解锁受保护的工作表,但它仍然没有解锁工作表,我需要在工作表中添加一些宏。

代码:

const string excelFile = @"c:\temp\VBA\test.xlsm";
var excelApplication = new ExcelInterop.Application { Visible = true };
var targetExcelFile = excelApplication.Workbooks.Open(FileName:excelFile,Password:"12asQOl");

我不能在这里使用“sendKeys”,请帮助我。

谢谢

4

2 回答 2

1

在您的代码中,您正在传递文档密码。您没有取消保护工作簿。

使用以下代码取消保护工作簿:

targetExcelFile.Unprotect(password);

如果您有任何问题,请告诉我。

于 2013-03-05T14:09:17.570 回答
1

使用 VBA 时的一条建议:开始录制您正在尝试执行的操作的宏,然后查看生成的代码。

看起来您正在尝试打开受保护的文件,而不是取消保护工作表。

我发现了一些类似这样的旧代码(它是 VB):

Dim WSheet As Worksheet
For Each WSheet In Worksheets
    If WSheet.ProtectContents = True Then
        WSheet.Unprotect Password:=MyPassword
    Else
        WSheet.Protect Password:=MyPassword
    End If
Next WSheet
于 2013-03-05T13:59:20.413 回答