如何仅使用用户窗体使共享工作簿可编辑?

时间:2019-02-24 13:05:18

标签: excel vba excel-2007

我有此工作簿,该工作簿在网络驱动器中共享。 我想要的是,只有5个人可以通过用户表单/或直接编辑文件 其余的只能看到。

某些背景:
我的文件共享在一个网络文件中,其中至少有15个用户通过User-form并发输入数据,当一个人保存文件时,工作簿会自行合并。

现在我想要

  • 只有3位用户将通过用户表单输入数据,其余的所有用户都可以看到工作表但不能编辑。

  • 或工作表将对所有人可见,但只能通过用户表单进行编辑

问题是当我共享工作簿时,保护选项/对象变得不可访问,因此使它成为受保护-不受保护的问题在这里无效。

这就是我在sub Workbook_Open()中尝试过的

Private Sub Workbook_Open()
    Protect_sheet
End Sub


Sub Protect_sheet()
    Dim WS As Worksheet
    Dim PWS As String
    PWS = "12345"    
    For Each WS In Worksheets
        WS.Protect Password:=PWS, USERINTERFACEONLY:=True
    Next WS    
End Sub

仅在不共享工作簿的情况下有效。

我有一个宏按钮来显示表格,我尝试过:
加载用户表单之前先解锁工作表并更改数据,然后再次锁定工作表,显示错误(单元格已锁定)。

我剩下的最后一个选择是将数据存储在一个工作簿wb_master中,然后将其内容复制到另一个工作簿wb_slave中。主机1将由指定的3个用户填充,其余所有用户将使用从机1。在这里,如何实现从主机到从机的实时刷新/重新加载?

有什么办法解决吗?

1 个答案:

答案 0 :(得分:0)

建议:

  • InputWorkbook.xlsb

将数据保存到

  • 访问数据库



  • ReadWorkbook.xlsb
    显示所有用户的数据

优势:
无需保护/取消保护工作簿/工作表!
共享/取消共享工作簿没有问题!
并行访问文件没有问题!
(甚至可以从三个编辑器并行写入!)