以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 使用excel模板打印如何不让人修改内容 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87310) |
-- 作者:rjh4078 -- 发布时间:2016/7/8 8:21:00 -- 使用excel模板打印如何不让人修改内容 如题 我试着转成pdf再预览 但是很多电脑太老 pdf转换要等N久 而且经常出现各种组件错误 但是使用excel直接预览时 操作员又能修改打印内容 之前红袍老是教过只读的方法也没成功
|
-- 作者:大红袍 -- 发布时间:2016/7/8 9:30:00 -- 设置excel的权限就行
保护工作表。 Protect方法可以指定保护密码参数,该密码为一个区分大小写的字符串。如果省略本参数,不用密码就可以取消对该工作表的保护。如: Dim App As New MSExcel.Application Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\Report.xls") Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets("同期对比") Ws.Protect(Password:="hhh") \'以密码保护 Wb.Save App.Quit 如果直接写为:Ws.Protect,则无需密码就能取消保护。 除此以外,Protect中还可以使用以下参数: DrawingObjects:是否保护图表。如:Ws.Protect(DrawingObjects:=True) Contents:是否保护单元格内容。 Scenarios:是否保护方案。 UserInterfaceonly:是否保护用户界面,但不保护宏。如果省略本参数,则保护既应用于宏也应用于用户界面。 AllowFormattingCells:是否允许用户为受保护的工作表上的任意单元格设置格式。 AllowFormattingColumns:是否允许用户为受保护的工作表上的任意列设置格式。 AllowFormattingRows:是否允许用户为受保护的工作表上的任意行设置格式。 AllowInsertingColumns:是否允许用户在受保护的工作表上插入列。 AllowInsertingRows:是否允许用户在受保护的工作表上插入行。 AllowInsertingHyperlinks:是否允许用户在受保护的工作表中插入超链接。 AllowDeletingColumns:是否允许用户在受保护的工作表上删除列,要删除的列中的每个单元格都是解除锁定的。 AllowDeletingRows:是否允许用户在受保护的工作表上删除行,要删除的行中的每个单元格都是解除锁定的。 AllowSorting:是否允许用户在受保护的工作表上进行排序。排序区域中的每个单元格必须是解除锁定的或取消保护的。 AllowFiltering:是否允许用户在受保护的工作表上设置筛选。用户可以更改筛选条件,但是不能启用或禁用自动筛选功能。用户也可以在已有的自动筛选功能上设置筛选。 AllowUsingPivotTables:是否允许用户在受保护的工作表上使用数据透视表。 撤销保护工作表。 如果在保护工作表时没有设置密码,则直接使用UnProtect即可;如果设置了密码,则需要在撤销保护工作表时指定保护密码,如: Ws.UnProtect(Password:="hhh") 选定并激活指定的工作表,如:Ws.Select |
-- 作者:Hyphen -- 发布时间:2016/7/8 9:30:00 -- 参考http://www.foxtable.com/webhelp/scr/2121.htm 用vba操作保护不能修改表格
|
-- 作者:rjh4078 -- 发布时间:2016/7/19 13:51:00 -- 使用这个用代码 打开excel的时候总是提示 已打开XX 请先关闭 |
-- 作者:rjh4078 -- 发布时间:2016/7/19 14:01:00 -- Dim djna As String=args(0) \'\'第一个参数 单据名 vars("文件路径")="" With Tables(djna) If .current IsNot Nothing Then Dim Book As New XLS.Book(Functions.Execute("打印模板缓存",djna)) Dim fl As String = ProjectPath & "Reports\\" & djna & ".xls" Book.Build() \'生成细节区 Book.Save(fl) Dim App As New MSExcel.Application App.Visible = True Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl) Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1) Ws.Protect(Password:="123") \'以密码保护 End If End With
|
-- 作者:rjh4078 -- 发布时间:2016/7/19 14:04:00 -- 代码如上 每次运行 提示已打开XXX 如何在打开之前判断下 |
-- 作者:大红袍 -- 发布时间:2016/7/19 14:22:00 -- 参考代码
http://www.foxtable.com/webhelp/scr/2126.htm
|
-- 作者:rjh4078 -- 发布时间:2016/7/19 15:11:00 -- 现在的问题是 程序提示文件已打开 但是实际上没有打开 进程里也没有 |
-- 作者:大红袍 -- 发布时间:2016/7/19 15:28:00 -- 做例子发上来测试。 |