我想通过程序只锁定EXCEL中某个单元格,对于锁定的这个单元格不能进行任何编辑,应该怎么写程序?

解决方案 »

  1.   

    // 详细使用查询VBA手册 unit Unit2; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls; type   TForm2 = class(TForm)     btn1: TButton;     btn2: TButton;     procedure btn1Click(Sender: TObject);     procedure FormCreate(Sender: TObject);     procedure FormDestroy(Sender: TObject);   private     { Private declarations }   public     { Public declarations }   end; var   Form2: TForm2;   excel: Variant; implementation uses ComObj; {$R *.dfm} procedure TForm2.btn1Click(Sender: TObject); begin  excel.Workbooks.add();  excel.visible := true;  excel.ActiveSheet.Protect(); end; procedure TForm2.FormCreate(Sender: TObject); begin  excel := CreateOleObject('Excel.Application'); end; procedure TForm2.FormDestroy(Sender: TObject); begin   Excel := null; end; end. ---------------------------------- 保护工作表使其不至被修改。 expression.Protect(Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables) expression   必需。该表达式返回一个 Worksheet 对象。 Password   Variant 类型,可选。为一个字符串,该字符串为工作表或工作簿指定区分大小写的密码。如果省略本参数,不用密码就可以取消对该工作表或工作簿的保护。否则,必须指定密码,通过密码来取消对该工作表或工作簿的保护。如果忘记了密码,就无法取消对该工作表或工作簿的保护。最好在安全的地方保存一份密码及其对应文档名的列表。 DrawingObjects   Variant 类型,可选。如果为 True,则保护图形。默认值为 False。 Contents   Variant 类型,可选。如果为 True,则保护内容。对于图表,这样将保护整个图表。对于工作表,这样将保护锁定的单元格。默认值为 True。 Scenarios   Variant 类型,可选。如果为 True,则保护方案。本参数仅对工作表有效。默认值为 True。 UserInterfaceOnly   Variant 类型,可选。如果为 True,则保护用户界面,但不保护宏。如果省略本参数,则保护既应用于宏也应用于用户界面。 AllowFormattingCells   Variant 类型,可选。如果为 True,则允许用户为受保护的工作表上的任意单元格设置格式。默认值为 False。 AllowFormattingColumns   Variant 类型,可选。如果为 True,则允许用户为受保护的工作表上的任意列设置格式。默认值为 False。 AllowFormattingRows   Variant 类型,可选。如果为 True,则允许用户为受保护的工作表上的任意行设置格式。默认值为 False。 AllowInsertingColumns   Variant 类型,可选。如果为 True,则允许用户在受保护的工作表上插入列。默认值为 False。 AllowInsertingRows   Variant 类型,可选。如果为 True,则允许用户在受保护的工作表上插入行。默认值为 False。 AllowInsertingHyperlinks   Variant 类型,可选。如果为 True,则允许用户在受保护的工作表中插入超链接。默认值为 False。 AllowDeletingColumns   Variant 类型,可选。如果为 True,则允许用户在受保护的工作表上删除列,要删除的列中的每个单元格都是解除锁定的。默认值为 False。 AllowDeletingRows   Variant 类型,可选。如果为 True,则允许用户在受保护的工作表上删除行,要删除的行中的每个单元格都是解除锁定的。默认值为 False。 AllowSorting   Variant 类型,可选。如果为 True,则允许用户在受保护的工作表上进行排序。排序区域中的每个单元格必须是解除锁定的或取消保护的。默认值为 False。 AllowFiltering   Variant 类型,可选。如果为 True,则允许用户在受保护的工作表上设置筛选。用户可以更改筛选条件,但是不能启用或禁用自动筛选功能。用户也可以在已有的自动筛选功能上设置筛选。默认值为 False。 AllowUsingPivotTables   Variant 类型,可选。如果为 True,则允许用户在受保护的工作表上使用数据透视表。默认值为 False。 说明如果对工作表应用 Protect 方法时,将 UserInterfaceOnly 参数设置为 True,然后又保存了工作簿,那么再次打开工作簿时,整张工作表将被完全保护,而并非仅仅保护用户界面。若要在再次打开工作簿后重新启用用户界面保护,必须再次将 UserInterfaceOnly 参数设置为 True 并应用 Protect 方法。 若要在受保护的工作表上做更改,如果提供密码,则可在受保护的工作表上使用 Protect 方法。同样,取消工作表保护的另一种方法是:对工作表做一些必要的更改,然后再次保护工作表。 注意   “取消保护”的意思是可以锁定单元格(“单元格格式”对话框),但是单元格要包含在“允许用户编辑区域”对话框中定义的单元格区域内,并且用户通过密码或经 NT 权限验证,已取消对单元格区域的保护。 
      

  2.   

    你把excel的单元格设置为只读保护不就完了嘛
      

  3.   

    选中单元格--设置单元格格式--保护--锁定
    然后菜单--工具--保护--保护工作表如果要程序来设置,你要找找OLE接口里的属性,可以在excel的帮助里面[编程信息]子目录里找