Страницы: 1
RSS
Как сохранить файл по адресу из ячейки другой книги с которой его запустили
 
Доброй ночи.

Подскажите, пож-та и дайте спокойно заснуть :),
как мне пересохранить открываемый макросом 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, то не сохраняет.
Код
Вместо ThisWorkbook.SaveAs Filename:=[C1], _ было 
Код
ActiveWorkbook.SaveAs Filename:="E:\1\fstld2_4.xls", _
Изменено: MedvedevAV - 08.03.2014 01:53:02
Если не можешь победить беспорядок, возглавь его
 
Код
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") ?!
Если не можешь победить беспорядок, возглавь его
 
Присвойте листу кодовое имя, - и по нему обращайтесь

или же так:
Код
Set sh = ThisWorkbook.worksheets("Лист2") 
 
Благодарю вас. Адаптировал под свою задачу, все получилось.
Мой LevelUp +1 :)
Если не можешь победить беспорядок, возглавь его
Страницы: 1
Читают тему
Наверх