使用vb.net保护excel中的单元格

我在Visual Studio 2013中有一个Excel表格和一个窗体窗体。这个窗体允许用户在Excel表格中input数据。 它将被多个用户共享。 我想要做的是在excel中的某些单元格(例如:列B到G)应该被locking,但是在这些单元格中的数据input应该被允许通过表单。 一旦用户打开Excel,他们可以编辑其他列,但不是这些列。 我locking了单元格,并在Excel中保护了工作表。 然后,在我的VB代码中,我添加了这些:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click xlWorkBook = xlApp.Workbooks.Open("C:\Users\test.xlsx") 'xlApp.Visible = True xlWorkSheet = xlWorkBook.Sheets("Sheet1") xlWorkBook.Unprotect() 'entering data in excel xlWorkBook.Save() xlWorkBook.Protect() End Sub 

我收到错误消息,说“您要input数据的单元格受到保护”。 像这样的东西。 我该怎么办? 请帮忙!!

所以根据我们的讨论:

你的代码的问题是你不保护工作簿,但真正保护的是你的工作表

另外,除了禁用确认提醒之外,您还需要使用:

xlApp.DisplayAlerts = False

保存之前,您还需要设置protection

PS。 我把我们的讨论总结为一个答案,因为它解决了这个问题,可以对未来的用户有所帮助。