Если количество доступных (или изменяемых) дисков разумно ограничено, вы можете жестко закодировать ожидаемые диски в массив и запустить цикл проверки доступности каждой комбинации пути к диску / файлу.
Когда путь к файлу доступен, книга будет сохранена и цикл завершится.
Может быть что-то вроде этого:
Sub SaveMe()
Dim FilePath As String: FilePath = "\Users\urdearboy\Documents\"
Dim Drive, i As Long
Drive = Array("D:", "Z:", "C:")
For i = LBound(Drive) To UBound(Drive)
If PathExists(Drive(i) & FilePath) Then
ThisWorkbook.SaveAs (Drive(i) & FilePath & "Book Name Here" & ".xlsx")
Exit For
End If
Next i
End Sub
Функция для проверки, существует ли путь к папке
Function PathExists(path As String) As Boolean
If Dir(path) <> vbNullString Then
PathExists = True
End If
End Function
Если вы решите использовать это, я просто оставлю эту процедуру отдельно от вашего другого кода и вызову эту подпрограмму, когда онавремя сохранить новую книгу.Конечно, вам нужно будет передать переменную путь к папке (и, возможно, название книги) в вышеупомянутый макрос.Затем это можно будет сохранить с помощью динамического расположения дисков и папок