Foxtable(狐表)用户栏目专家坐堂 → 使用excel模板打印如何不让人修改内容


  共有2964人关注过本帖树形打印复制链接

主题:使用excel模板打印如何不让人修改内容

帅哥哟,离线,有人找我吗?
rjh4078
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3361 积分:24808 威望:0 精华:0 注册:2012/3/26 21:47:00
使用excel模板打印如何不让人修改内容  发帖心情 Post By:2016/7/8 8:21:00 [只看该作者]

如题 

我试着转成pdf再预览  但是很多电脑太老 pdf转换要等N久 而且经常出现各种组件错误  但是使用excel直接预览时 操作员又能修改打印内容 之前红袍老是教过只读的方法也没成功

 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/8 9:30:00 [只看该作者]

 设置excel的权限就行

 

  • Protect

    保护工作表。
    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

    撤销保护工作表。
    如果在保护工作表时没有设置密码,则直接使用UnProtect即可;如果设置了密码,则需要在撤销保护工作表时指定保护密码,如:
    Ws.UnProtect(Password:="hhh")
     
  • Select
    选定并激活指定的工作表,如:Ws.Select

  •  回到顶部
    帅哥哟,离线,有人找我吗?
    Hyphen
      3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


    加好友 发短信
    等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
      发帖心情 Post By:2016/7/8 9:30:00 [只看该作者]

    参考http://www.foxtable.com/webhelp/scr/2121.htm

    用vba操作保护不能修改表格

     回到顶部
    帅哥哟,离线,有人找我吗?
    rjh4078
      4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


    加好友 发短信
    等级:狐精 帖子:3361 积分:24808 威望:0 精华:0 注册:2012/3/26 21:47:00
      发帖心情 Post By:2016/7/19 13:51:00 [只看该作者]

    使用这个用代码 打开excel的时候总是提示 已打开XX 请先关闭

     回到顶部
    帅哥哟,离线,有人找我吗?
    rjh4078
      5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


    加好友 发短信
    等级:狐精 帖子:3361 积分:24808 威望:0 精华:0 注册:2012/3/26 21:47:00
      发帖心情 Post By: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
      6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


    加好友 发短信
    等级:狐精 帖子:3361 积分:24808 威望:0 精华:0 注册:2012/3/26 21:47:00
      发帖心情 Post By:2016/7/19 14:04:00 [只看该作者]

    代码如上 每次运行 提示已打开XXX 如何在打开之前判断下 

     回到顶部
    帅哥哟,离线,有人找我吗?
    大红袍
      7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


    加好友 发短信
    等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
      发帖心情 Post By:2016/7/19 14:22:00 [只看该作者]


     回到顶部
    帅哥哟,离线,有人找我吗?
    rjh4078
      8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


    加好友 发短信
    等级:狐精 帖子:3361 积分:24808 威望:0 精华:0 注册:2012/3/26 21:47:00
      发帖心情 Post By:2016/7/19 15:11:00 [只看该作者]

    现在的问题是  程序提示文件已打开  但是实际上没有打开  进程里也没有

     回到顶部
    帅哥哟,离线,有人找我吗?
    大红袍
      9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


    加好友 发短信
    等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
      发帖心情 Post By:2016/7/19 15:28:00 [只看该作者]

     做例子发上来测试。

     回到顶部