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

Вход

Регистрация

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

 

= Мир MS Excel/Как сохранить лист в отдельный файл со значениями? - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как сохранить лист в отдельный файл со значениями? (Макросы/Sub)
Как сохранить лист в отдельный файл со значениями?
rus102 Дата: Пятница, 20.03.2020, 07:56 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Имеется книга, где каждый лист ссылается на предыдущий лист. Необходимо сохранить текущий лист в отдельный файл:
1. заменой формулы на значение
2. чтобы формулы в исходном листе (книге) сохранились
3. что бы автоматически сохранялось в папке с определенным названием
Я поискав на формуах собрал макрос, чтобы он выполнял пунктам 1 и 3, но не могу доделать, чтобы не убивались формулы в исходной книге.
[vba]
Код
Sub CommandButton1_Click()
Dim smallrng As Range
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
Dim FileN$
FileN = ThisWorkbook.Path & "\" & "Суточный рапорт_" & Range("V2") & ".xls"
ActiveSheet.Copy
ActiveWorkbook.SaveCopyAs FileN
ActiveWorkbook.Close SaveChanges:=False
MsgBox "Текущий лист сохранен в новой книге" & FileN
End Sub
[/vba]
Я так понимаю, что необходимо сначала копировать всю книгу, затем уже присваивать значения и сохранять в отдельный файл лист. Но я не силен с VBA и не знаю как надо это делать. ;)


Сообщение отредактировал rus102 - Пятница, 20.03.2020, 08:18
 
Ответить
СообщениеДобрый день!
Имеется книга, где каждый лист ссылается на предыдущий лист. Необходимо сохранить текущий лист в отдельный файл:
1. заменой формулы на значение
2. чтобы формулы в исходном листе (книге) сохранились
3. что бы автоматически сохранялось в папке с определенным названием
Я поискав на формуах собрал макрос, чтобы он выполнял пунктам 1 и 3, но не могу доделать, чтобы не убивались формулы в исходной книге.
[vba]
Код
Sub CommandButton1_Click()
Dim smallrng As Range
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
Dim FileN$
FileN = ThisWorkbook.Path & "\" & "Суточный рапорт_" & Range("V2") & ".xls"
ActiveSheet.Copy
ActiveWorkbook.SaveCopyAs FileN
ActiveWorkbook.Close SaveChanges:=False
MsgBox "Текущий лист сохранен в новой книге" & FileN
End Sub
[/vba]
Я так понимаю, что необходимо сначала копировать всю книгу, затем уже присваивать значения и сохранять в отдельный файл лист. Но я не силен с VBA и не знаю как надо это делать. ;)

Автор - rus102
Дата добавления - 20.03.2020 в 07:56
Kuzmich Дата: Пятница, 20.03.2020, 13:51 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация: 97 ±
Замечаний: 0% ±

Excel 2003
Цитата
чтобы не убивались формулы в исходной книге.

Перенесите строку
[vba]
Код
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
[/vba]
после операции копирования
[vba]
Код
ActiveSheet.Copy
[/vba]
 
Ответить
Сообщение
Цитата
чтобы не убивались формулы в исходной книге.

Перенесите строку
[vba]
Код
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
[/vba]
после операции копирования
[vba]
Код
ActiveSheet.Copy
[/vba]

Автор - Kuzmich
Дата добавления - 20.03.2020 в 13:51
rus102 Дата: Пятница, 20.03.2020, 15:15 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Kuzmich, К сожалению не помогает, формулы в исходном файле остались, а вот значений в конечном файле нет, т.к. они ссылались на предыдущие листы.
Сделал так:
[vba]
Код
Sub CommandButton1_Click()
Dim smallrng As Range
Dim FileN$
FileN = ThisWorkbook.Path & "\" & "Суточный рапорт_" & Range("V2") & ".xls"
ActiveSheet.Copy
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
ActiveWorkbook.SaveCopyAs FileN
ActiveWorkbook.Close SaveChanges:=False
MsgBox "Текущий лист сохранен в новой книге" & FileN
End Sub
[/vba]


Сообщение отредактировал rus102 - Пятница, 20.03.2020, 15:17
 
Ответить
СообщениеKuzmich, К сожалению не помогает, формулы в исходном файле остались, а вот значений в конечном файле нет, т.к. они ссылались на предыдущие листы.
Сделал так:
[vba]
Код
Sub CommandButton1_Click()
Dim smallrng As Range
Dim FileN$
FileN = ThisWorkbook.Path & "\" & "Суточный рапорт_" & Range("V2") & ".xls"
ActiveSheet.Copy
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
ActiveWorkbook.SaveCopyAs FileN
ActiveWorkbook.Close SaveChanges:=False
MsgBox "Текущий лист сохранен в новой книге" & FileN
End Sub
[/vba]

Автор - rus102
Дата добавления - 20.03.2020 в 15:15
RAN Дата: Пятница, 20.03.2020, 15:54 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 5280
Репутация: 1059 ±
Замечаний: 0% ±

2010
а вот значений в конечном файле нет

Не верю.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
а вот значений в конечном файле нет

Не верю.

Автор - RAN
Дата добавления - 20.03.2020 в 15:54
rus102 Дата: Пятница, 20.03.2020, 17:44 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
RAN, как есть говорю. наверное, это из-за того что у меня не обычные формулы, а ссылки на предыдущий лист при помощи функции ДВССЫЛ. Пример во вложении. Помогите пожалуйста :)
К сообщению приложен файл: 5931522.xlsm(20.8 Kb)
 
Ответить
СообщениеRAN, как есть говорю. наверное, это из-за того что у меня не обычные формулы, а ссылки на предыдущий лист при помощи функции ДВССЫЛ. Пример во вложении. Помогите пожалуйста :)

Автор - rus102
Дата добавления - 20.03.2020 в 17:44
RAN Дата: Пятница, 20.03.2020, 18:15 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 5280
Репутация: 1059 ±
Замечаний: 0% ±

2010
ДВССЫЛ(), конечно, тоже не подарок, но, в данном случае не при делах.
А вот то, что во вновь созданном файле нет вашей UDF, то ОЙ.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеДВССЫЛ(), конечно, тоже не подарок, но, в данном случае не при делах.
А вот то, что во вновь созданном файле нет вашей UDF, то ОЙ.

Автор - RAN
Дата добавления - 20.03.2020 в 18:15
rus102 Дата: Пятница, 20.03.2020, 18:25 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
RAN, получается что нерешаема задача? То есть не получиться создать временную копию книги с UDF и там применить формулу для присваивания значений, а затем оттуда вытащить лист?
 
Ответить
СообщениеRAN, получается что нерешаема задача? То есть не получиться создать временную копию книги с UDF и там применить формулу для присваивания значений, а затем оттуда вытащить лист?

Автор - rus102
Дата добавления - 20.03.2020 в 18:25
RAN Дата: Пятница, 20.03.2020, 19:14 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 5280
Репутация: 1059 ±
Замечаний: 0% ±

2010
Почему нет?

[vba]
Код
Sub CommandButton1_Click()
    Dim smallrng As Range
    Dim FileN$, wb As Workbook
    FileN = ThisWorkbook.Path & "\" & "Суточный рапорт_" & Range("B1") & ".xlsm"
    ThisWorkbook.SaveCopyAs FileN
    Set wb = Workbooks.Open(FileN)
    ActiveSheet.DrawingObjects.Delete    'удаление всех кнопок
    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
    ActiveSheet.Copy
    wb.Close SaveChanges:=False
    Kill FileN
    Mid(FileN, Len(FileN), 1) = "x"
    ActiveWorkbook.SaveAs FileN, 51
    ActiveWorkbook.Close SaveChanges:=False
    MsgBox "Текущий лист сохранен в новой книге" & FileN
End Sub
[/vba]
К сообщению приложен файл: 5300891.gif(90.7 Kb)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПочему нет?

[vba]
Код
Sub CommandButton1_Click()
    Dim smallrng As Range
    Dim FileN$, wb As Workbook
    FileN = ThisWorkbook.Path & "\" & "Суточный рапорт_" & Range("B1") & ".xlsm"
    ThisWorkbook.SaveCopyAs FileN
    Set wb = Workbooks.Open(FileN)
    ActiveSheet.DrawingObjects.Delete    'удаление всех кнопок
    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
    ActiveSheet.Copy
    wb.Close SaveChanges:=False
    Kill FileN
    Mid(FileN, Len(FileN), 1) = "x"
    ActiveWorkbook.SaveAs FileN, 51
    ActiveWorkbook.Close SaveChanges:=False
    MsgBox "Текущий лист сохранен в новой книге" & FileN
End Sub
[/vba]

Автор - RAN
Дата добавления - 20.03.2020 в 19:14
Hugo Дата: Пятница, 20.03.2020, 19:28 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2909
Репутация: 646 ±
Замечаний: 0% ±

Когда код UDF есть в надстройке - он не нужен в книге, так что UDF можно применять и в xlsx.


excel@nxt.ru
webmoney: E265281470651 R418926282008 Z422237915069
 
Ответить
СообщениеКогда код UDF есть в надстройке - он не нужен в книге, так что UDF можно применять и в xlsx.

Автор - Hugo
Дата добавления - 20.03.2020 в 19:28
RAN Дата: Пятница, 20.03.2020, 19:33 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 5280
Репутация: 1059 ±
Замечаний: 0% ±

2010
Игорь, тогда и танцы с бубном будут без нать! :D

Не интересно.


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Пятница, 20.03.2020, 19:35
 
Ответить
СообщениеИгорь, тогда и танцы с бубном будут без нать! :D

Не интересно.

Автор - RAN
Дата добавления - 20.03.2020 в 19:33
rus102 Дата: Пятница, 20.03.2020, 21:20 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
RAN, спасибо большое! Вы меня спасли! :up: yahoo


Сообщение отредактировал rus102 - Пятница, 20.03.2020, 21:21
 
Ответить
СообщениеRAN, спасибо большое! Вы меня спасли! :up: yahoo

Автор - rus102
Дата добавления - 20.03.2020 в 21:20
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как сохранить лист в отдельный файл со значениями? (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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