Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сохранение листа в отдельный файл - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Сохранение листа в отдельный файл
AVI Дата: Понедельник, 17.09.2018, 17:46 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 523
Репутация: 17 ±
Замечаний: 0% ±

Excel 2016
Написал кодик
[vba]
Код
Sub еееее()
    Name = "111"
    iPath = "C:\Users\Администратор\Desktop\Справки"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    List = ActiveSheet.Name
    Sheets(List).Copy
    Sheets(List).UsedRange.Value = Sheets(List).UsedRange.Value
    Sheets(List).Buttons.Delete
    Sheets(List).DrawingObjects.Delete
    ActiveWorkbook.SaveAs iPath & Name
    ActiveWorkbook.Close False
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
[/vba]
Мне нужно, что бы код фоном сохранял активный лист в отдельный файл, называя его "Name" с удалением всех картинок, кнопок и макросов с листа, с принудительной заменой файла с таким же названием
Получается все кроме того, что ни как не сохраняться в папку "C:\Users\Администратор\Desktop\Справки"

Где я накосячил?
К сообщению приложен файл: 04159___44-55.xlsm (25.5 Kb)
 
Ответить
СообщениеНаписал кодик
[vba]
Код
Sub еееее()
    Name = "111"
    iPath = "C:\Users\Администратор\Desktop\Справки"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    List = ActiveSheet.Name
    Sheets(List).Copy
    Sheets(List).UsedRange.Value = Sheets(List).UsedRange.Value
    Sheets(List).Buttons.Delete
    Sheets(List).DrawingObjects.Delete
    ActiveWorkbook.SaveAs iPath & Name
    ActiveWorkbook.Close False
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
[/vba]
Мне нужно, что бы код фоном сохранял активный лист в отдельный файл, называя его "Name" с удалением всех картинок, кнопок и макросов с листа, с принудительной заменой файла с таким же названием
Получается все кроме того, что ни как не сохраняться в папку "C:\Users\Администратор\Desktop\Справки"

Где я накосячил?

Автор - AVI
Дата добавления - 17.09.2018 в 17:46
StoTisteg Дата: Понедельник, 17.09.2018, 17:55 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Подробно не смотрел, но называть переменные List и Name — плохая идея.


Интуитивно понятный код - это когда интуитивно понятно, что это код.

Сообщение отредактировал StoTisteg - Понедельник, 17.09.2018, 17:56
 
Ответить
СообщениеПодробно не смотрел, но называть переменные List и Name — плохая идея.

Автор - StoTisteg
Дата добавления - 17.09.2018 в 17:55
AVI Дата: Понедельник, 17.09.2018, 18:05 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 523
Репутация: 17 ±
Замечаний: 0% ±

Excel 2016
StoTisteg, первое что в голову пришло. Назвать можно и иначе, но почему он не сохраняет в нужную папку?


Сообщение отредактировал AVI - Понедельник, 17.09.2018, 18:11
 
Ответить
СообщениеStoTisteg, первое что в голову пришло. Назвать можно и иначе, но почему он не сохраняет в нужную папку?

Автор - AVI
Дата добавления - 17.09.2018 в 18:05
Pelena Дата: Понедельник, 17.09.2018, 18:13 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19603
Репутация: 4660 ±
Замечаний: ±

Excel 365 & Mac Excel
В конце iPath должен быть ещё слэш \
А переменная Name где определяется?
Помимо имени в Name должно быть расширение


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеВ конце iPath должен быть ещё слэш \
А переменная Name где определяется?
Помимо имени в Name должно быть расширение

Автор - Pelena
Дата добавления - 17.09.2018 в 18:13
StoTisteg Дата: Понедельник, 17.09.2018, 18:21 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Sub еееее()

    Dim sh As Worksheet
    Dim nm As String, iPath As String

    nm = "111"
    iPath = "C:\Users\Администратор\Desktop\Справки"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Workbooks.Add
    Err.Clear
    Do While Err.Number = 0
        Worksheets(1).Delete
    Loop
    sh.Cells.Copy Destination:=Cells
    With ActiveSheet
        .Name = sh.Name
        .Buttons.Delete
        .DrawingObjects.Delete
    End With
    ActiveWorkbook.SaveAs iPath & "\" & nm & ".xlsx"
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
[/vba]


Интуитивно понятный код - это когда интуитивно понятно, что это код.

Сообщение отредактировал StoTisteg - Понедельник, 17.09.2018, 18:23
 
Ответить
Сообщение[vba]
Код
Sub еееее()

    Dim sh As Worksheet
    Dim nm As String, iPath As String

    nm = "111"
    iPath = "C:\Users\Администратор\Desktop\Справки"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Workbooks.Add
    Err.Clear
    Do While Err.Number = 0
        Worksheets(1).Delete
    Loop
    sh.Cells.Copy Destination:=Cells
    With ActiveSheet
        .Name = sh.Name
        .Buttons.Delete
        .DrawingObjects.Delete
    End With
    ActiveWorkbook.SaveAs iPath & "\" & nm & ".xlsx"
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
[/vba]

Автор - StoTisteg
Дата добавления - 17.09.2018 в 18:21
AVI Дата: Понедельник, 17.09.2018, 18:22 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 523
Репутация: 17 ±
Замечаний: 0% ±

Excel 2016
Заработало!! Спасибо!
[vba]
Код
Sub ååååå()
    Name = "111"
    iPath = "C:\Users\Àäìèíèñòðàòîð\Desktop\Ñïðàâêè\"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    List = ActiveSheet.Name
    Sheets(List).Copy
    Sheets(List).UsedRange.Value = Sheets(List).UsedRange.Value
    Sheets(List).Buttons.Delete
    Sheets(List).DrawingObjects.Delete
    ActiveWorkbook.SaveAs iPath & Name & ".xlsx"
    ActiveWorkbook.Close False
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
[/vba]
 
Ответить
СообщениеЗаработало!! Спасибо!
[vba]
Код
Sub ååååå()
    Name = "111"
    iPath = "C:\Users\Àäìèíèñòðàòîð\Desktop\Ñïðàâêè\"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    List = ActiveSheet.Name
    Sheets(List).Copy
    Sheets(List).UsedRange.Value = Sheets(List).UsedRange.Value
    Sheets(List).Buttons.Delete
    Sheets(List).DrawingObjects.Delete
    ActiveWorkbook.SaveAs iPath & Name & ".xlsx"
    ActiveWorkbook.Close False
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
[/vba]

Автор - AVI
Дата добавления - 17.09.2018 в 18:22
_Boroda_ Дата: Понедельник, 17.09.2018, 19:23 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Так у Вас этот файл всегда будет накладываться на предыдущую версию. Возможно, что Вам так и нужно.
На всякий случай вариант с датой-временем
[vba]
Код
Sub aaaaa()
    Name_ = "111" & Format(Now, " от YYYY_MM_DD hh_mm_ss")
    iPath = "C:\Users\Администратор\Desktop\Справки\"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ActiveSheet.Copy
    With ActiveSheet
        .UsedRange.Value = .UsedRange.Value
        .Buttons.Delete
        .DrawingObjects.Delete
    End With
    ActiveWorkbook.SaveAs iPath & Name_ & ".xlsx"
    ActiveWorkbook.Close False
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
[/vba]
Да, и называть переменную name - не очень хорошая идея. В VBA уже есть такое зарезервированное слово


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак у Вас этот файл всегда будет накладываться на предыдущую версию. Возможно, что Вам так и нужно.
На всякий случай вариант с датой-временем
[vba]
Код
Sub aaaaa()
    Name_ = "111" & Format(Now, " от YYYY_MM_DD hh_mm_ss")
    iPath = "C:\Users\Администратор\Desktop\Справки\"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ActiveSheet.Copy
    With ActiveSheet
        .UsedRange.Value = .UsedRange.Value
        .Buttons.Delete
        .DrawingObjects.Delete
    End With
    ActiveWorkbook.SaveAs iPath & Name_ & ".xlsx"
    ActiveWorkbook.Close False
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
[/vba]
Да, и называть переменную name - не очень хорошая идея. В VBA уже есть такое зарезервированное слово

Автор - _Boroda_
Дата добавления - 17.09.2018 в 19:23
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!