以下是我的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"在这里,请帮助我。
由于
答案 0 :(得分: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
答案 1 :(得分:1)
在您的代码中,您传递的是文档密码。你并没有取消对工作簿的保护。
使用以下代码取消保护工作簿:
targetExcelFile.Unprotect(password);
如果您有任何问题,请告诉我。