Microsoft.Office.Interop.Excel VB.NET如何禁用在工作表中selectlocking的值

我正在使用VB.Net中的Microsoft.Office.Interop.Excel库在受保护的Excel工作表上。 所有的保护设置工作正常,除了我不能设置selectlocking的单元格显示,当您使用Excel保护工作表界面,但我不明白如何设置为false使用库。 我已经尝试了保护方法中的所有不同的值,但是没有一个值会切换。

Excel保护表单菜单
Excel保护表单菜单

下面是我用来获取我的工作表,填充一些值,然后保护工作表的代码片段。 GetWorkSheet是一个内部方法,它将返回一个WorkSheet对象,而invoiceData是一个数据表,它有被添加到电子表格中的数据。

Dim newSheet As Worksheet = getWorkSheet(newSheetName) ' Make the current Work Sheet active so that it will be accepting the data. newSheet.Activate() newSheet.Unprotect(sheetPassword) For i As Integer = 1 To invoiceData.Rows(0).ItemArray.Count newSheet.Cells(transactionalRow, i) = invoiceData.Rows(0).ItemArray(i - 1) Next 'work is done so protect it again newSheet.Protect(sheetPassword, False, True, False, True, True, True, True, True, True, True, True, True, True, True, True) excel.ActiveWorkbook.Save() 

这是非常令人困惑的,因为该属性没有设置Protect声明。

在调用您的保护声明之后,发出以下呼叫:

 ActiveSheet.EnableSelection = xlNoRestrictions 

请参阅此页面以获取EnableSelection的其他值: http : //msdn.microsoft.com/zh-cn/library/microsoft.office.tools.excel.worksheet.enableselection ( EnableSelection .aspx

您可以尝试录制一个macros并将其设置为查看它生成的代码types。 当我使用Interop库时,我曾经这样做过。