Я попробовал следующий код ниже с Excel 365. Ну, это не работает. Я попробовал пару изречений. Блокировка, похоже, не работает. Либо ячейки вообще не заблокированы, либо они не могут быть визуально выделены, но все же могут быть отредактированы. Здесь что-то кажется сломанным. У кого-нибудь есть решение? Я просто хочу заблокировать некоторые ячейки, а другие нет, на самом деле все очень просто.
В приведенном ниже коде результат для меня заключается в том, что я все еще могу редактировать ячейки. ВСЕ ИХ!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Excel = Microsoft.Office.Interop.Excel;
using Office = Microsoft.Office.Core;
using Microsoft.Office.Tools.Excel;
namespace SampleVSTOAddIn
{
public partial class ThisAddIn
{
private void WorkbookOpen(Microsoft.Office.Interop.Excel.Workbook wb)
{
Excel.Worksheet activeWorksheet = ((Excel.Worksheet)Application.ActiveSheet);
activeWorksheet.Protect(UserInterfaceOnly: true);
activeWorksheet.EnableSelection = Excel.XlEnableSelection.xlUnlockedCells;
activeWorksheet.get_Range("A1").Value2 = "Locked";
activeWorksheet.get_Range("B1").Value2 = "Unlocked";
activeWorksheet.get_Range("A1").Style.Locked = true;
activeWorksheet.get_Range("B1").Style.Locked = false;
}
private void InternalStartup()
{
this.Application.WorkbookOpen += new Microsoft.Office.Interop.Excel.AppEvents_WorkbookOpenEventHandler(WorkbookOpen);
}
}
}