Разделите имя файла и используйте переменные среды для локальной папки OneDrive.
dim fn as string
fn = ThisWorkbook.FullName
'split off the workbook name if fullname is a url
fn = split(fn, "/")(ubound(split(fn, "/")))
'split off the workbook name if fullname is a local path
fn = Split(fn, "\")(UBound(Split(fn, "\")))
'add the environment var
fn = environ("onedrive") & "\" & fn
'check to see if it exists
if len(dir(fn)) > 0 then
debug.print fn
end if
Обратите внимание, что существуют переменные среды OneDrive и OneDriveConsumer.Мои собственные идентичны, но для каждого должна быть причина.