【问题标题】:How do I load/retrieve an Excel workbook from SharePoint using VBA?如何使用 VBA 从 Sharepoint 加载/检索 Excel 工作簿?
【发布时间】:2021-12-08 13:50:48
【问题描述】:

我的问题对你们大多数人来说可能很愚蠢,但是由于我在使用 VBA 方面有点不熟练,这给我带来了一些麻烦。

我有一个代码,它实际上打开了一个 Excel 模板文件,该文件存储在我们的网络驱动器上,使用来自另一个 Excel 表的输入填充空白并保存现在填充的模板。

现在我们从网络驱动器更改为共享点解决方案,所以现在我很难使用 URL 而不是本地目录打开宏。

Private Sub GenererTestjournaler_Click()`
    
    Dim i As Long
    Dim Directory As String, TempDirectory As String, NewDirectory As Variant
    Set FSO = CreateObject("Scripting.FileSystemObject")
    'This used to be the directory; Directory = "Z:\Hercules\DEN\2. Sager, Igangværende\Dynamisk ankertabel\Dynamisk ankertabel\Ankertabel\Godkendelsesforsøg_skabelon.xlsm"
    'Now i want this to be the new directory:
            Directory = "https://ncconline.sharepoint.com/:x:/r/sites/HerculesDanmark/DE/Dynamisk%20ankertabel/Ankertabel/Godkendelsesfors%C3%B8g_skabelon.xlsm?d=w35745d48f1984d189336f0e630a03f9a&csf=1&web=1&e=90aXBu"
            TempDirectory = "C:\Users\" & Environ("UserName") & "\Documents\Temp_template.xlsm"
            
    On Error Resume Next
    Kill TempDirectory
    On Error GoTo 0

    FSO.copyfile Directory, TempDirectory
    Set wbTemplate = Workbooks.Open(TempDirectory)

等等……

运行宏时,我得到“找不到运行时错误 '76' 路径。 我猜它没有正确加载 URL

希望有人能帮帮我

【问题讨论】:

    标签: excel vba sharepoint directory


    【解决方案1】:

    使用 URL 在 Excel 中打开工作簿,然后将其保存到临时位置。

    您不能使用 FSO/Dir 来处理 http 文件夹/文件。

    Private Sub GenererTestjournaler_Click()
    
        Const TEMPL_URL As String = "https://ncconline.sharepoint.com/sites/HerculesDanmark/" & _
                     "DE/Dynamisk%20ankertabel/Ankertabel/Godkendelsesfors%C3%B8g_skabelon.xlsm"
        
        Dim wb As Workbook
        Dim TempName As String
        
        Set wb = Workbooks.Open(TEMPL_URL)
        
        TempName = "C:\Users\" & Environ("UserName") & "\Documents\Temp_template.xlsm"
    
        On Error Resume Next
        Kill TempName
        On Error GoTo 0
        
        'Application.DisplayAlerts = False 'can use this instead of Kill
        wb.SaveAs TempName
        'Application.DisplayAlerts = True  'in place of Kill
        
        '...
        '...
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2015-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多