2013-03-05 79 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); 

讓我知道,如果你有任何問題。