【问题标题】:How can I open an excel file read-write for some users and readonly for others如何为某些用户打开一个可读写的 Excel 文件,而为其他用户打开一个只读文件
【发布时间】:2014-05-22 08:30:08
【问题描述】:

我有一个 excel 文件,我的所有同事都必须具有读取权限,但只有少数同事可能具有写入权限。

我试图在 workbook_open 中引入一个程序来测试用户并根据它来决定如何打开文件。我了解到这不能直接工作,因此我尝试访问具有更改只读状态的过程的加载项。

Private Sub Workbook_Open()
    users = Environ("USERNAME")
    Select Case users
        Case "chris": MsgBox "ok"
        Case "david": MsgBox "ok"
        Case "sam": MsgBox "ok"            
        Case Else: Application.Run ("read_only")
    End Select
End Sub

这是插件中的子函数

Sub read_only()
   file_name = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
   Status = ActiveWorkbook.readonly

   ActiveWorkbook.Close ' (the problem is here because also this sub stops when my workbook closes)
   If Status = False Then
       Workbooks.Open fileName:=file_name, readonly:=True 
    Else
       Workbooks.Open fileName:=file_name, readonly:=False  
   End If
End Sub

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    你可以直接做:)

    试试这个

    Private Sub Workbook_Open()
    Users = Environ("USERNAME")
        Select Case Users
            Case "chris": MsgBox "ok"
            Case "david": MsgBox "ok"
            Case "sam": MsgBox "ok"
            Case Else
            Application.DisplayAlerts = False
            On Error Resume Next
           'may already be read only
            If ThisWorkbook.Path <> vbNullString Then ThisWorkbook.ChangeFileAccess xlReadOnly
            On Error GoTo 0
            Application.DisplayAlerts = True
        End Select
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      • 2013-12-03
      • 2015-06-06
      • 2018-12-16
      • 1970-01-01
      相关资源
      最近更新 更多