Microsoft.Office.Interop.Excel VB.NET如何禁用工作表中的选择锁定值

时间:2011-08-29 19:56:20

标签: vb.net excel

我在受保护的Excel工作表上使用VB.Net中的Microsoft.Office.Interop.Excel库。所有受保护的设置都正常工作,除了我无法设置选择锁定单元格,它显示您何时使用Excel保护表界面,但我看不到如何使用库将其设置为false。我在保护方法中尝试了所有不同的值,但没有一个切换值。

Excel受保护的表格菜单
Excel protected sheet menu

下面是我用来获取工作表的代码片段,填充一些值,然后保护工作表。 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()

2 个答案:

答案 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时,我曾经这样做过。