c# - 在Excel c#中锁定单元格有什么问题
问题描述
我用 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);
}
}
}
解决方案
哦,我的,我的坏。我设置了 Style.Locked,但需要设置 .Locked。这么愚蠢的错误。
在这里完成:
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").Locked = true;
activeWorksheet.get_Range("B1").Locked = false;
}
private void InternalStartup()
{
this.Application.WorkbookOpen += new Microsoft.Office.Interop.Excel.AppEvents_WorkbookOpenEventHandler(WorkbookOpen);
}
}
}
推荐阅读
- javascript - 如何在 asp.net NOT MVC 中实现 jquery dataTabel
- ios - 是否可以通过 URL 打开 iOS 键盘扩展?
- apache-spark - Spark结构化流mapGroupWithState输出到镶木地板
- javascript - jquery不更新元素值
- drop-down-menu - 颤动中的下拉按钮小部件不接受报价中的数字
- ios - WKWebview,imagePicker 选择图片时不显示完成按钮
- javascript - req.body 在分配给变量后更改值
- c# - 如何从 IEnumerable 创建多维数组
- mysql - mysql:不推荐使用 mysql_setpermission 吗?
- sql - SQL - 列解析