【问题标题】:Opening an Excel workbook from SharePoint in edit mode from a Word VBA macro从 Word VBA 宏以编辑模式从 SharePoint 打开 Excel 工作簿
【发布时间】:2019-09-03 15:15:13
【问题描述】:

我正在尝试通过 Word 中的 VBA 宏从我公司的 SharePoint 网站以编辑模式打开 Excel 工作簿。 我可以打开工作簿,但它总是以只读模式打开,甚至无法进入编辑模式。奇怪的是,在这种情况下通常允许我进入编辑模式的功能区根本没有出现。

我尝试将 ActiveWorkbook.LockServerFile 添加到创建的对象(返回错误)和我尝试打开的工作簿,但它没有改变任何东西。

我也尝试使用以下方法打开它: Workbooks.Open(Filename:="\\filepath\file.xlsm", UpdateLinks:=False, ReadOnly:=True),也没有帮助。参数False 也不起作用。

我在 Word 文档中有一个用户表单,它会自动将输入数据填充到文档中的必要位置,计算付款并将其保存为 pdf。之后,我想在 Excel 文件的底部添加一条记录,用于跟踪生成的文档。所以基本上我想打开 Excel 工作簿并根据我输入到 Word 用户窗体的数据在最后一行之后添加一个新行。

无论我做什么,它总是以只读模式打开,甚至无法手动进入编辑模式。

我怀疑这是我公司的信任中心设置的问题,因为所有内容都被阻止并显示为灰色,我无法与这些设置混淆以查看是否是问题所在。这可能吗?

【问题讨论】:

  • 您说的是ReadOnly:=True,但这意味着您想以只读方式打开工作簿。是不是打错字了?
  • 我都试过了。我在某处读到它可能出于某种原因有所帮助,但不幸的是它没有。
  • 我会放一些代码作为答案,请评论它,如果这对你有用,请告诉我

标签: excel vba sharepoint ms-word office365


【解决方案1】:

来自MSDN Forum 的代码是否会通过对话框打开您刚刚选择的文件?

确保https://sharepoint.com/team/folder 是正确的网址

sub tryme()
Dim SummaryWB As Workbook
Dim vrtSelectedItem As Variant

With Application.FileDialog(msoFileDialogOpen)
    .InitialFileName = "https://sharepoint.com/team/folder" & "\"
    .AllowMultiSelect = False
    .Show
    For Each vrtSelectedItem In .SelectedItems
        Set SummaryWB = Workbooks.Open(vrtSelectedItem)
    Next
End With

If SummaryWB Is Nothing then Exit Sub

end sub

如果 MSDN 代码有效,也许你可以试试这个:

Set MyWorkBook = Workbooks.open("https://sharepoint.com/team/folder" & "\" & FileName)

不要至少 FileName 可以只是工作簿的名称,如 test.xlsm 或工作簿名称 + 文件夹,如 foldername1\foldername2\test.xlsm

正如我在评论中所说,我正在等待您的反馈以建立一个可接受的答案,最诚挚的问候

【讨论】:

  • 我也考虑了这个解决方案,但我想让它打开一个具有固定名称的特定文件,因为我不是 Word 文档生成器和 Excel 文件的唯一用户,而且总是有一个其他用户会意外选择错误的 Excel 文件的风险(我们在同一位置有多个工作簿)并将记录保存到完全不同的工作簿中,它会丢失或完全崩溃宏。明天我将在工作中尝试您的代码并返回答案,因为我相信如果我不知道如何强制在编辑模式下打开,这将是做我想做的事情的唯一方法。
  • @hollson 我将编辑此答案,因此如果第一个代码有效,您将需要尝试第二个代码。请不要至少,即使它有效,我也在等待您的反馈。最诚挚的问候
  • 感谢您对我的帮助,明天我可以访问 SharePoint 时,我会回复您。
  • @hollson 我编辑了我的答案,明天见!
  • @hollson js 发生了什么? :)
【解决方案2】:

尝试了很多解决方案,唯一对我成功的解决方案是改编您的文件链接:

从此(当您通过 SharePoint 中的“复制链接”复制它时)”:

https://pmt.sharepoint.com/:x:/r/teams/ClearServiceRus/Teams%20Wiki%20Data/General/Book.xlsx?d=wc4cde03eae523df9a7082c18g4ege61b&csf=1&web=1&e=lnONME

对此(特别注意“/:x:/r”部分):

https://pmt.sharepoint.com/teams/ClearServiceRus/Teams%20Wiki%20Data/General/Book.xlsx

代码:

URL = "https://pmt.sharepoint.com/teams/ClearServiceRus/Teams%20Wiki%20Data/General/Book.xlsx"
Set wb = Workbooks.Open(URL)
Debug.Print wb.FullName

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多