如何在VBA中引用sharepoint上excel文件中存储的单元格值

如何在VBA中引用sharepoint上excel文件中存储的单元格值,excel,vba,sharepoint,Excel,Vba,Sharepoint,为了控制文件的版本,我希望能够运行一个脚本,将工作表VC上的单元格A1与运行脚本时存储在Sharepoint上的版本的相同单元格/工作表进行比较。使用VBA是一个相当新的工具,无法解决如何使用VBA的问题,也无法在谷歌上找到我想要的答案 我要使用的代码: Public Sub version_control() Sheets("VC").Calculate If Sheets("VC").Range("A1").Value <> (this is where I want it

为了控制文件的版本,我希望能够运行一个脚本,将工作表VC上的单元格A1与运行脚本时存储在Sharepoint上的版本的相同单元格/工作表进行比较。使用VBA是一个相当新的工具,无法解决如何使用VBA的问题,也无法在谷歌上找到我想要的答案

我要使用的代码:

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
公共子版本_控件()
表(“VC”)。计算
If Sheets(“VC”).Range(“A1”).Value(这是我希望它在Sharepoint文件中检查A1单元格sheet VC的位置)
MsgBox“请从Sharepoint下载最新版本”
申请,退出
如果结束
端接头

猜猜看,您还没有打开SharePoint文件。。。如果这是真的,请往下跳

但是如果它是打开的,你可以像其他打开的工作簿一样引用它。。。e、 g.这两种方法都应该有效:

debug.Print Workbooks("MySharePointWorkbook.xlsx").Sheets("VC").Range("A1").Value
debug.Print Workbooks.Item(n).Sheets("VC").Range("A1").Value
可能还没开门吧?在不深入外部数据链接的情况下,我只需获取SharePoint文件的完整URL(在即时窗口中打开它,
?Activeworkbook.FullName
),并将该字符串存储在
服务器文件名中,如下所示:

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
公共子版本_控件()
Dim serverFileName作为字符串“获取sharepoint文件名的url,在下面插入
Dim值与布尔值不同,因此我们可以在下面进行内务处理
Dim x作为新Excel。应用程序“为sharepoint版本创建新会话”
Dim w作为sharepoint文件的工作簿抓取句柄
表(“VC”)。计算
valuesAreDifferent=False“隐式,显式”
服务器文件名=”http://whatever-domain.com/MySharepointWorkbook.xlsx"
x、 Visible=False'因此在检查时不会闪烁
设置w=x.Workbooks.Open(serverFileName)'打开sharepoint版本
如果板材(“VC”)范围(“A1”)值与板材(“VC”)范围(“A1”)值相同,则_
valuesarediffer=True
“以防我们不退出
w、 接近
x、 退出
设置w=无
设置x=无
如果值不一样,那么
MsgBox“请从Sharepoint下载最新版本”
申请,退出
如果结束
端接头