Помогите поправить макрос. Нужно чтобы при создании выделенных листов, книгам задавалось имя ячейки AG6 и сохраняла файл в формате .XLSX
[vba]
Код
Sub SplitSheets3() Dim AW As Window Set AW = ActiveWindow For Each s In AW.SelectedSheets Set TempWindow = AW.NewWindow ' s.Copy ' ActiveWindow.SaveAs AW.Path & "\" & Range("AG6") & ".xlsx" ' For Each cell In ActiveSheet.UsedRange.Cells cell.Formula = cell.Value Next cell
TempWindow.Close ' Next End Sub
[/vba]
Помогите поправить макрос. Нужно чтобы при создании выделенных листов, книгам задавалось имя ячейки AG6 и сохраняла файл в формате .XLSX
[vba]
Код
Sub SplitSheets3() Dim AW As Window Set AW = ActiveWindow For Each s In AW.SelectedSheets Set TempWindow = AW.NewWindow ' s.Copy ' ActiveWindow.SaveAs AW.Path & "\" & Range("AG6") & ".xlsx" ' For Each cell In ActiveSheet.UsedRange.Cells cell.Formula = cell.Value Next cell
labm-12, Не так всё просто у вас в файле будет. Обратите внимание на ячейки начиная с: AS95, AY95, AS152 и AY152 В них там расчёты должны происходить связанные с ячейками: AK95, AK97, AK99, AK152, AK154, AK156 на Листе template Но так вы в коде из другого Листа не вносите данные в них то в первых указанных ячейках (AS95, AY95, AS152 и AY152) будет ошибка. Н а так если вам сильно надо то допишите следуйщий кусок кода между: [vba]
Код
.Range("AL167").Value = base(i, 13) ' Вставить начиная отсюда End With
' Удалить все формулы на листе With newWorkbook.Sheets(1).Cells .Copy .PasteSpecial xlPasteValues Application.CutCopyMode = False End With
Application.DisplayAlerts = False ' Заканчивая данной строкой в коде
[/vba] Я думаю вы разберётесь сами. Если что то пишите сюда, помогу дальше вам. Удачи.
labm-12, Не так всё просто у вас в файле будет. Обратите внимание на ячейки начиная с: AS95, AY95, AS152 и AY152 В них там расчёты должны происходить связанные с ячейками: AK95, AK97, AK99, AK152, AK154, AK156 на Листе template Но так вы в коде из другого Листа не вносите данные в них то в первых указанных ячейках (AS95, AY95, AS152 и AY152) будет ошибка. Н а так если вам сильно надо то допишите следуйщий кусок кода между: [vba]
Код
.Range("AL167").Value = base(i, 13) ' Вставить начиная отсюда End With
' Удалить все формулы на листе With newWorkbook.Sheets(1).Cells .Copy .PasteSpecial xlPasteValues Application.CutCopyMode = False End With
Application.DisplayAlerts = False ' Заканчивая данной строкой в коде
[/vba] Я думаю вы разберётесь сами. Если что то пишите сюда, помогу дальше вам. Удачи.MikeVol
Ученик. Одесса - Украина
Сообщение отредактировал MikeVol - Понедельник, 28.08.2023, 22:07
MikeVol, вставляя код выше ничего не срабатывает. Подскажите как из столбцов 17,18,19 копировать формулы а не значения? и сохранять лист со значениями. Извиняюсь, совсем не силен в VBA.
MikeVol, вставляя код выше ничего не срабатывает. Подскажите как из столбцов 17,18,19 копировать формулы а не значения? и сохранять лист со значениями. Извиняюсь, совсем не силен в VBA.labm-12
labm-12, Здравствуйте. Не понял куда надо вставлять 19-й столбец. Ну а остальное в файле, я там подробно написал что к чему. Пользуйтесь! Удачи!
labm-12, Здравствуйте. Не понял куда надо вставлять 19-й столбец. Ну а остальное в файле, я там подробно написал что к чему. Пользуйтесь! Удачи!MikeVol