Код VBA в электронной таблице не позволяет многопользовательский доступ в Excel - PullRequest
1 голос
/ 21 июля 2010

У меня есть электронная таблица, в которую один отдел будет сканировать образец, и в столбце рядом с ним будет время и дата, когда он будет отсканирован (отправлен).Затем следующий отдел отсканирует образец в другой столбец и отметит дату и время, когда он был отсканирован (получен).код, который я использую, приведен ниже, но из-за защиты я не могу редактировать электронную таблицу одновременно двумя людьми.Есть ли что-нибудь, что я могу сделать, чтобы позволить это?

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 Ответ

1 голос
/ 22 июля 2010

Я настоятельно рекомендую вам использовать ADO здесь.Если вы пойдете по этому пути, вы будете иметь удаленную книгу Excel (или .mdb, если хотите) в качестве базы данных, а «дочерние» книги (или надстройки Excel) будут записывать соответствующие данные в эту базу данных и, еслитребуется, также читайте из него.

Хороший обзор ADO в VBA приведен здесь: http://www.xtremevbtalk.com/showthread.php?t=217783.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...