2013-03-05 74 views
1

以下是我的C#代码,其中我试图通过传递密码来解锁受保护的表单,但仍未解锁表单,我需要在表单中添加一些宏。取消保护excel表

代码:

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” 在这里,请帮助我在此。

感谢与VBA工作时

回答

1

一句忠告:开始记录你想那么做看生成的代码什么的宏。

看起来你试图打开一个受保护的文件,而不是取消保护工作表。

我发现的是这样一些旧代码(它的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 
+0

VB 6和C#之间的差异是显着的。 – 2013-03-05 14:14:06

+1

我不想做所有的工作,只是指向正确的方向。他试图打开一个密码保护的文件,当他想要的是解除工作表的保护。我想答案和(VB6)代码已经清楚了。 – 2013-03-05 15:05:48

1

在你的代码是通过密码文件。您不是不保护工作簿。

使用下面的代码来取消保护工作簿:

targetExcelFile.Unprotect(password); 

让我知道,如果你有任何问题。