Подтвердить что ты не робот

Сохранение листа Excel в текущем каталоге с помощью VBA

Я создал лист в vba Excel. Я хотел бы сохранить его в текущем каталоге, но не в абсолютном пути, тогда, когда это будет выполнено где-то в другом месте, проблем не будет.

Может ли кто-нибудь помочь?

4b9b3361

Ответ 1

Я не совсем понимаю, что вам требуется для вашей ситуации, но вы можете начать следующее. Ключ здесь используется ThisWorkbook.Path для получения относительного пути к файлу:

Sub SaveToRelativePath()
    Dim relativePath As String
    relativePath = ThisWorkbook.Path & "\" & ActiveWorkbook.Name
    ActiveWorkbook.SaveAs Filename:=relativePath
End Sub

Ответ 2

У VBA есть ключевое слово CurDir, которое вернет "текущий каталог", хранящийся в Excel. Я не уверен, что все, что влияет на текущий каталог, но, безусловно, открытие или сохранение рабочей книги изменят его.

MyWorkbook.SaveAs CurDir & Application.PathSeparator & "MySavedWorkbook.xls"

Это предполагает, что лист, который вы хотите сохранить, никогда не был сохранен, и вы хотите определить имя файла в коде.

Ответ 3

Если Путь опущен, файл будет автоматически сохранен в текущем каталоге. Попробуйте что-то вроде этого:

<я > ActiveWorkbook.SaveAs "Filename.xslx"

Ответ 4

Снова сделав этот шаг, чтобы сохранить файл в относительном каталоге, вы можете использовать функцию replace. Скажем, у вас есть ваша книга, сохраненная в: c:\property\california\sacramento\workbook.xlsx, используйте это, чтобы переместить свойство в berkley:

workBookPath = Replace(ActiveWorkBook.path, "sacramento", "berkley")
myWorkbook.SaveAs(workBookPath & "\" & "newFileName.xlsx"

Работает только в том случае, если ваша файловая структура содержит один экземпляр текста, который используется для замены. YMMV.