Подскажите, пож-та и дайте спокойно заснуть :), как мне пересохранить открываемый макросом dbf файл в формат xls используя при этом путь для сохранения, находящийся в ячейке книги, с которого запустили макрос. Как нужно исправить код чтобы обратиться к книге с макросом?
Код
Sub Пересохранение()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Workbooks.Open [F1] ' файл dbf находящийся по адресу в ячейке F1
' хочу сохранить файл в формат xls по адресу в ячейке С1 (книга с макросом)
ThisWorkbook.SaveAs Filename:=[C1], _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close False
Application.DisplayAlerts = True
End Sub
Код
Если вместо ThisWorkbook использовать ActiveWorkbook, то не сохраняет.
Sub Пересохранение()
Application.ScreenUpdating = False: Application.DisplayAlerts = False
Dim sh As Worksheet, WB As Workbook
Set sh = ActiveSheet ' запоминаем лист, с которого берем имена файлов
Set WB = Workbooks.Open(sh.Range("F1")) ' открываем файл dbf
WB.SaveAs sh.Range("C1"), xlWorkbookNormal ' сохраняем в формате XLS
WB.Close False ' закрываем файл
Application.DisplayAlerts = True: Application.ScreenUpdating = True
End Sub
Спасибо, получилось. Если нужно обратиться к конкретному листу книги с которой запустился макрос (например Лист2 "Настройка" как правильно указать это в коде? Добавить в Set sh = ActiveSheet.Sheets("Лист2") ?!