我在受保护的Excel工作表上使用VB.Net中的Microsoft.Office.Interop.Excel库。所有受保护的设置都正常工作,除了我无法设置选择锁定单元格,它显示您何时使用Excel保护表界面,但我看不到如何使用库将其设置为false。我在保护方法中尝试了所有不同的值,但没有一个切换值。
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()
答案 0 :(得分:3)
这非常令人困惑,因为该属性未使用Protect
语句设置。
在致电您的保护声明后,发出以下电话:
ActiveSheet.EnableSelection = xlNoRestrictions
有关EnableSelection
的其他值,请参阅此页面:
http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.enableselection(VS.80).aspx
答案 1 :(得分:1)
您可以尝试录制宏并将其设置为查看它生成的代码类型。当我使用Interop libs时,我曾经这样做过。