gpt4 book ai didi

excel - 无法使用 VBA 代码打开 onedrive Excel 文件

转载 作者:行者123 更新时间:2023-12-04 21:47:17 25 4
gpt4 key购买 nike

我在 onedrive 位置上有一个 excel 文件,我首先编写了一个函数,将文件共享点路径中的“/”替换为“\”。
但是我正在尝试使用以下语法打开文件,但无法打开

Set objLogExcel = CreateObject("Excel.Sheet")

Set objLogWorkbook = objLogExcel.Application.Workbooks.Open(path,False,False)

上面的行是在文件路径中添加 .xlsx 扩展名,有什么建议吗?

最佳答案

请尝试这种方式:

  • 首先,手动打开讨论中的工作簿;

    在打开的工作簿 VBE 中,将下一个代码放在任何模块中:
    Sub testFullName()
    Debug.Print ThisWorkbook.FullName
    End Sub

  • 这样你就拥有了在线特征全名。像这样: "https://d.docs.live.net/fdb7a15aac1d9134/TestWorkbook.xlsx" .
  • 复制以上全名就像 并放在下一个Sub :
    Sub testOpenWBOneDrive()
    Dim wbFullName, objLogExcel As Object
    Set objLogExcel = CreateObject("Excel.Application")
    objLogExcel.Visible = True
    wbFullName = "https://d.docs.live.net/fdb7a15aac1d9134/TestWorkbook.xlsx"
    objLogExcel.Workbooks.Open (wbFullName)
    End Sub

  • 当然,您必须将示例完整路径替换为您的完整路径,如上所述获得......

    编辑:为了能够在这两种情况下使用代码(在线 - 离线),您必须按照以下方式继续:
  • 确定是否存在 Internet 连接:

  • 请复制模块顶部的下一个函数声明(在声明区域中):
    Private Declare PtrSafe Function InternetGetConnectedState Lib "wininet.dll" _
    (ByRef dwflags As Long, ByVal dwReserved As Long) As Long

    使用该模块中的下一个函数:
    Private Function isInternetConON() As Boolean
    isInternetConON = InternetGetConnectedState(0&, 0&)
    End Function

    然后,使用下面的代码来处理 OneDrive 工作簿的打开,甚至是离线:
    Private Sub testOpenOneDriveOnlineOffline()
    Dim sfilename As String, Xl As Object, xlsheet As Object
    sfilename = "https://d.docs.live.net/fdb7a15aac1d9134/Test.xlsm"
    Set Xl = CreateObject("Excel.Application") ' or Set xl = CreateObject("Excel.Sheet")
    Xl.Visible = True

    If isInternetConON Then
    Set xlsheet = Xl.Workbooks.Open(fileName:=sfilename, ReadOnly:=False)
    Else
    'In case of internet connection beeing down:
    'Note: It works only if you uncheck:
    'OneDrive -> More -> Settings -> Office "Use Office applications to sync Office files that I open!
    Dim sLocalODPath As String
    sLocalODPath = Environ("onedrive") & "\" 'If your workbook is not in the OneDrive folder root,
    'you have to add the other folder(s), to build the path
    sfilename = Right(sfilename, Len(sfilename) - InStrRev(sfilename, "/")) ': Debug.Print sfilename: Stop
    Set xlsheet = Xl.Workbooks.Open(fileName:=sLocalODPath & sfilename, ReadOnly:=False)
    End If
    End Sub

    关于excel - 无法使用 VBA 代码打开 onedrive Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61914157/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com