Макросы в общих файлах sharepoint - PullRequest
0 голосов
/ 25 апреля 2019

Я делаю рабочие книги в Excel, которые отправляют данные с одного листа на другие рабочие книги.Я использую метод копирования и вставки для этого.Книги сохраняются в Sharepoint (Onedrive) и являются общими.

У нас есть два вида рабочих тетрадей, первая - это планировщики проектов, вторая - совокупность всех проектов и дает обзор того, на какой стадии находится проект в данный момент, и в конечном итоге некоторые комментарии.Это вместе две строки данных.

Код в основном находит правильную неделю и строки для копирования (диапазон), затем открывает книгу сбора и ищет строки и столбец для вставки данных. Это всборник трудовых книжек.после этого первый диапазон копируется и вставляется во второй диапазон

Итак, мы тестировали эту систему и обнаружили некоторые проблемы.Если несколько человек находятся в рабочей книге или в рабочей книге проекта.В нем говорится, что есть некоторые поправки, поэтому файл нужно открыть заново.

Мое лучшее предположение, что есть некоторые строки кода, которые не работают должным образом в этом общем режиме Office 365. Потому что, когда мы обычноиспользуйте общие листы и просто введите данные, в конце концов, данные появятся с некоторой задержкой.

Я не уверен, достаточно ли ясен этот код для чтения.

Sub SyncToBureauplanner()

'Finds the projectplanner

 Dim Thisproject As String
    Thisproject = Range("A10").Value

Dim Projectplanner As String
    Projectplanner = Thisproject & ".xlsm"

'remove protection from the projectplanner

'locate the bureauplanner

Dim ThisUser As String
    ThisUser = Environ("username")

Dim Disk As String
    Disk = "C:\Users\"

Dim Bureauplannerspath As String
    Bureauplannerspath = "\bureau\planning 
- Documenten\Bureauplanning\"

Dim File As String
    File = "Bureauplanning.xlsm"

Dim BureauplannerPath As String
    BureauplannerPath = Disk & ThisUser & Bureauplannerspath & File

'opens the bureauplanner

Workbooks.Open (BureauplannerPath)

'Remove protection from the Bureauplanner
Workbooks("Bureauplanning.xlsm").Sheets("Planning").Unprotect

'Search for the column of this week
Workbooks(Projectplanner).Activate
Workbooks(Projectplanner).Sheets("Planning").Unprotect

Dim CurrentWeek As String
    CurrentWeek = 
Workbooks(Projectplanner).Sheets("Planning").Range("C7").Value

Dim Weekcolumn As Range
    With Workbooks(Projectplanner).Sheets("Planning").Range("15:15")
    Set Weekcolumn = .Find(What:=CurrentWeek, LookIn:=xlValues, 
LookAt:=xlWhole, MatchCase:=False, Searchformat:=False)

    End With

'Makes the range wich will be copied


Dim GeneralData As Range
Set GeneralData = 
Workbooks(Projectplanner).Sheets("Planning").Range(Cells(16, 
Weekcolumn.Column), Cells(17, Weekcolumn.Offset(0, 106).Column))

'Search for the column and row where the Generaldata will be pasted
Dim ThisWeek As Range

    Dim CurrentBureauWeek As String
        CurrentBureauWeek = 
Workbooks(Projectplanner).Sheets("Planning").Range("C7").Value

With Workbooks("Bureauplanning.xlsm").Sheets("Planning").Range("M10:DM10")
Set ThisWeek = .Find(What:=CurrentBureauWeek, LookIn:=xlValues, 
LookAt:=xlWhole, MatchCase:=False, Searchformat:=False)
If Not ThisWeek Is Nothing Then

End If
End With

Dim Thisprojecrow As Range

With Workbooks("Bureauplanning.xlsm").Sheets("Planning").Range("B:B")
Set Thisprojectrow = .Find(What:=Thisproject, LookIn:=xlValues, 
LookAt:=xlWhole, MatchCase:=False, Searchformat:=False)
If Not Thisprojectrow Is Nothing Then

End If
End With

Dim PasteStartcell As Range
Set PasteStartcell = 
Workbooks("Bureauplanning.xlsm").Sheets("Planning").Cells
(Thisprojectrow.Offset(-1, 0).Row, ThisWeek.Column)

Dim PasteEndcell As Range
Set PasteEndcell = 
Workbooks("Bureauplanning.xlsm").Sheets("Planning").Cells 
(Thisprojectrow.Row, ThisWeek.Offset(0, 106).Column)

Dim Pasterange As Range
Set Pasterange = Range(PasteStartcell, PasteEndcell)

GeneralData.Copy
Pasterange.PasteSpecial (xlPasteValues)

Workbooks("Bureauplanning.xlsm").Sheets("Planning").Protect , 
UserInterfaceonly:=True
Workbooks("Bureauplanning.xlsm").Close

Workbooks(Projectplanner).Sheets("Planning").Protect , 
UserInterfaceonly:=True

End Sub

Я надеюсь, что кто-нибудь подскажет, как я могу копировать и вставлять данные в другую рабочую книгу без повторного открытия файлов, чтобы их можно было обновлять, когда другие люди находятся в файле

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