Страницы: 1
RSS
Выгрузка листа, с сохранением, в новую книгу, с заменой на значения (VBA)
 
Всем привет!
Есть код который выгружает отдельно лист в новую книгу и сохраняет её (новую книгу)
Код
Sub Отчёт_Excel()
Dim FileN$
FileN = ThisWorkbook.Path & "\" & "Отчёт " & Date & ".xlsx"
ThisWorkbook.Sheets(3).Copy
ActiveWorkbook.SaveCopyAs FileN
ActiveWorkbook.Close SaveChanges:=False
MsgBox "Лист № 3 сохранен в новой книге " & FileN
End Sub
но проблема в том, что на листе есть формулы, которые надо перед сохранением заменить на значения
пытался добавить в код:
Код
For Each cell in ActiveSheet.UsedRange.Cells   
cell.Formula = cell.Value
Next cell
для перевода в значения, но не получается
 
Код
cell.Value = cell.Value
 
а без цикла нельзя?
Код
ActiveSheet.UsedRange.Cells.Value = ActiveSheet.UsedRange.Cells.Value
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Что то я поттупливаю), вставляю после сохранения, но не срабатывает
 
Цитата
adamm написал:
вставляю после сохранения
ну это логично, откуда оно должно сработать, если происходит ПОСЛЕ сохранения, а не ДО? В какой замена формул на значения должна тогда сохраниться?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Все разобрался, не туды в ту строку вставил+почитал https://www.planetaexcel.ru/techniques/11/215/
вот так работает:
Код
Sub Отчёт_Excel()
Dim FileN$
FileN = ThisWorkbook.Path & "\" & "Отчёт " & Date & ".xlsx"
ThisWorkbook.Sheets(3).Copy

ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value

ActiveWorkbook.SaveCopyAs FileN
ActiveWorkbook.Close SaveChanges:=False
MsgBox "Лист № 3 сохранен в новой книге " & FileN
End Sub
Спасибо!
 
Код
ActiveSheet.UsedRange.Cells.Value = ActiveSheet.UsedRange.Cells.Value
ActiveWorkbook.SaveCopyAs FileN
 
В исходном файле не выгружает так как надо, выдает ссылки, во вложении файл, который выгрузился с исходной книги, что не так, подскажите люди знающие!
 
Цитата
adamm написал:
что не так
видимо то, что в листе есть ссылки на другие листы и после копирования формулы сбиваются. Наверное, надежнее делать так:
Код
Sub Отчёт_Excel()
Dim FileN$
FileN = ThisWorkbook.Path & "\" & "Отчёт " & Date & ".xlsx"
ThisWorkbook.Sheets(3).Copy
 
ActiveSheet.UsedRange.Value = ThisWorkbook.Sheets(3).UsedRange.Value
 
ActiveWorkbook.SaveCopyAs FileN
ActiveWorkbook.Close SaveChanges:=False
MsgBox "Лист № 3 сохранен в новой книге " & FileN
End Sub
Изменено: Дмитрий(The_Prist) Щербаков - 02.10.2019 14:08:16
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Минутку! А тут нет подвоха? Мы пытаемся книгу с макросом при помощи SaveCopyAs сохранить, как xlsx.
 
Все супер! Спасибо Дмитрий!
Страницы: 1
Наверх