电子表格中的VBA代码不允许在Excel中进行多个用户访问

时间:2010-07-21 19:16:39

标签: excel-vba vba excel

我有一个电子表格,一个部门会扫描一个样本,它会在扫描(发送)时在其旁边的列中标记时间和日期。然后,下一个部门会将样本扫描到另一列,并在扫描(接收)时记录时间和日期。我正在使用的代码如下,但由于保护,我不能同时由两个人编辑电子表格。有什么我可以做到的吗?

Private Sub Worksheet_Change(ByVal Target As Range)

ActiveSheet.Protect ("Password"), UserInterfaceOnly:=True

'Only write a timestamp of an odd column changes (because the timestamps go in the even columns)
If Target.Column Mod 2 > 0 Then

    'Get the first part of the address, to get the actual column being changed
    Dim columnAddress As String
    columnAddress = Target.Address

    If InStr(columnAddress, ":") > 0 Then
        columnAddress = Left(columnAddress, InStr(columnAddress, ":") - 1)
    End If

        If Not ActiveSheet.Range(columnAddress).Formula = "" Then

        'Write the timestamp for the previous column
        ActiveSheet.Range(columnAddress).Offset(0, 1).Formula = Now

        Else
            ActiveSheet.Range(columnAddress).Offset(0, 1).Formula = ""
        End If
End If

End Sub

1 个答案:

答案 0 :(得分:1)

我强烈建议您在此处使用ADO。如果你走这条路线,你将有一个远程Excel工作簿(或.mdb,如果你愿意的话)作为你的数据库和“子”工作簿(或Excel加载项)将相关数据写入这个数据库,如果需要,也可以从中读取。

此处提供了VBA中ADO的概述:http://www.xtremevbtalk.com/showthread.php?t=217783