Как сослаться на значение ячейки, хранящееся в файле Excel на sharepoint в VBA - PullRequest
0 голосов
/ 07 февраля 2019

В целях контроля версий для моего файла я хочу иметь возможность запускать сценарий, который сравнивает ячейку A1 на листе VC с той же ячейкой / листом версии, хранящейся на Sharepoint, когда я запускаю свой сценарий.Довольно плохо знаком с использованием VBA и не могу понять, как это сделать, и не могу найти ответ, который я ищу в Google.

Код, который я хочу использовать:

Public Sub version_control()

Sheets("VC").Calculate

If Sheets("VC").Range("A1").Value <> (this is where I want it to check cell A1 sheet VC on the Sharepoint file)

MsgBox "Please download the latest version from the Sharepoint"

Application.Quit
End If

End Sub

1 Ответ

0 голосов
/ 09 февраля 2019

Думаю, у вас еще нет открытого файла SharePoint ... если это правда, пропустите.

Но если он открыт, вы можете ссылаться на него, как на любую другую открытую книгу ... например, на оба этидолжно работать:

debug.Print Workbooks("MySharePointWorkbook.xlsx").Sheets("VC").Range("A1").Value
debug.Print Workbooks.Item(n).Sheets("VC").Range("A1").Value

Наверное, уже не открыто, верно?Не вдаваясь в сорняки внешних ссылок на данные, я просто получил бы полный URL-адрес файла SharePoint (откройте его, ? Activeworkbook.FullName в «Немедленном окне») и сохранил эту строку в serverFileName следующим образом:

Public Sub version_control()
    Dim serverFileName As String 'obtain url for sharepoint filename, insert below
    Dim valuesAreDifferent As Boolean 'so we can do housekeeping below
    Dim x As New Excel.Application 'make a new session for the sharepoint version
    Dim w As Workbook 'grab-handle for the sharepoint file
    Sheets("VC").Calculate
    valuesAreDifferent = False 'implicit, being explicit
    serverFileName = "http://whatever-domain.com/MySharepointWorkbook.xlsx"
    x.Visible = False 'so it doesn't flash up when checking
    Set w = x.Workbooks.Open(serverFileName) 'open the sharepoint version
    If Sheets("VC").Range("A1").Value <> w.Sheets("VC").Range("A1").Value Then _
        valuesAreDifferent = True
    'housekeeping in case we don't quit
    w.Close
    x.Quit
    Set w = Nothing
    Set x = Nothing
    If valuesAreDifferent Then
        MsgBox "Please download the latest version from the Sharepoint"
        Application.Quit
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...