Chuyển đổi OneDrive URL thành Local Path

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

syquyen1987

Thành viên hoạt động
Tham gia
8/7/18
Bài viết
193
Được thích
43
Chào các Anh!

Em có một vấn đề tồn tại rất lâu mà chưa khắc phục được. Hiện tại nhóm em dùng OneDrive, và đường dẫn tới file là dạng URL (https://d.docs.live.net/769cc29a062381cb/07. Shift Report/10. Oct). Các anh có cách nào chuyển đổi về đường dẫn thư mục bình thường được không ạ (C:\Users\User\OneDrive\07. Shift Report\10. Oct). Em xin cảm ơn!
 
Mình cũng bị tương tự khi lấy giá trị
PHP:
    fullPath = ThisWorkbook.FullName
Có hai hướng:
1. Không dùng office 365, cứ chân phương dùng office 2016
2. Bạn dùng code để thay thế vị trí thôi
Tham khảo

PHP:
Function DoiDuongDan(oneDriveURL As String) As String
    'localFolder vi tri onedrive
    Dim localFolder As String
    localFolder = "C:\Users\User\OneDrive\"

    ' Tim vi tri
    Dim startIdx As Long
    Dim endIdx As Long
    startIdx = InStr(oneDriveURL, ".live.net/") + Len(".live.net/")
    endIdx = InStr(startIdx, oneDriveURL, "/")

    ' Lay dinh danh
    Dim accountID As String
    accountID = Mid(oneDriveURL, startIdx, endIdx - startIdx)

    ' Thay the URL bang local
    DoiDuongDan = Replace(oneDriveURL, "https://d.docs.live.net/" & accountID & "/", localFolder)
    DoiDuongDan = Replace(DoiDuongDan, "/", "\")
End Function

Chạy kiểm tra thử xem nhé.
PHP:
Sub TestDoiDuongDan()
    Dim oneDriveURL As String
    Dim localPath As String

    oneDriveURL = "https://d.docs.live.net/769cc29a062381cb/07. Shift Report/10. Oct"

    localPath = DoiDuongDan(oneDriveURL)

    MsgBox "New: " & localPath
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Trong OneDrive, Microsoft đã cố tình giấu nút chức năng này đi.
Nên phải hiện được chức năng này để tắt đi thì vấn đề sẽ được giải quyết triệt để.


1702092710381.png
 
Upvote 0
Mình cũng bị tương tự khi lấy giá trị
PHP:
    fullPath = ThisWorkbook.FullName
Có hai hướng:
1. Không dùng office 365, cứ chân phương dùng office 2016
2. Bạn dùng code để thay thế vị trí thôi
Tham khảo

PHP:
Function DoiDuongDan(oneDriveURL As String) As String
    'localFolder vi tri onedrive
    Dim localFolder As String
    localFolder = "C:\Users\User\OneDrive\"

    ' Tim vi tri
    Dim startIdx As Long
    Dim endIdx As Long
    startIdx = InStr(oneDriveURL, ".live.net/") + Len(".live.net/")
    endIdx = InStr(startIdx, oneDriveURL, "/")

    ' Lay dinh danh
    Dim accountID As String
    accountID = Mid(oneDriveURL, startIdx, endIdx - startIdx)

    ' Thay the URL bang local
    DoiDuongDan = Replace(oneDriveURL, "https://d.docs.live.net/" & accountID & "/", localFolder)
    DoiDuongDan = Replace(DoiDuongDan, "/", "\")
End Function

Chạy kiểm tra thử xem nhé.
PHP:
Sub TestDoiDuongDan()
    Dim oneDriveURL As String
    Dim localPath As String

    oneDriveURL = "https://d.docs.live.net/769cc29a062381cb/07. Shift Report/10. Oct"

    localPath = DoiDuongDan(oneDriveURL)

    MsgBox "New: " & localPath
End Sub
Cảm ơn anh, em bận viết coding quá đến bây giờ em mới xem. Khi em hỏi trên diễn đàn thì ngay sau đó em tìm được coding trên diễn đàn thế giới để giải quyết vấn đề của em ạ. Code của em như sau:
Mã:
Function OneDrivePathFixer(datPath As String) As String
    Dim oneDrivePart As String
    datPath = VBA.Replace(datPath, "/", "\")
    oneDrivePart = "https:\\d.docs.live.net\"
    If VBA.InStr(datPath, oneDrivePart) Then
        datPath = VBA.Replace(datPath, oneDrivePart, "")
        datPath = Right(datPath, Len(datPath) - VBA.InStr(1, datPath, "\"))
        datPath = Environ$("OneDriveConsumer") & "\" & datPath
    End If
    OneDrivePathFixer = datPath
End Function

Sub a()
Dim mypath As String
Dim mypath1 As String
mypath = ThisWorkbook.Path
mypath1 = OneDrivePathFixer(mypath)
End Sub
 
Upvote 0
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom