1) Удалять все строки в который есть формула, но нет значений (он уже написан см. ниже) 2) Удалять все формулы в листе (он уже написан см. ниже) 3) Сохранить вкладку как новый файл с определенным именем файла "Файл 1" + дата. 4) Все это будет происходить без затрагивания исходного файла
Мой вариант, который не работает:
Все работало пока не совместил с другими макросами в один. Теперь при нажатии кноки макроса, удаляет ненужные строки, удаляет формулы и сохраняет как новый файл. Однако, при открытие созданного данной функцией файла, есть следующие проблемы:
1) Пустые строки не удалены (формулы удалены, новый файл создан) 2) Почему-то меняется цвет одной строки (был фиолетовый, стал желтый) 3) При открытии нового файла пишет, что коррупирован и открытие его может быть не безопасно (почему?) 4) Как в функции поменять, чтобы новый файл не просто датой назывался, а определенное имя файла "Файл 1" + дата.
[vba]
Код
Sub DeleteRows() Set rr = Range("A15:O226") For Each cell In rr cell.Select If cell.HasFormula = True And cell.Value = "" And cell.EntireRow.Hidden = False Then Rows(cell.Row).EntireRow.Hidden = True Next cell End Sub
Sub All_Formulas_To_Values_() ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value End Sub
Sub SaveAsNew() Dim FileN$ FileN = ThisWorkbook.Path & "\" & Date & ".xls" ThisWorkbook.Sheets(5).Copy ActiveWorkbook.SaveCopyAs FileN ActiveWorkbook.Close SaveChanges:=False MsgBox "Worksheet is saved as new file " & FileN End Sub
Sub AllOperations() Call DeleteRows Call All_Formulas_To_Values_ Call SaveAsNew End Sub
[/vba]
Добрый день!
Помогите с макросом, который будет:
1) Удалять все строки в который есть формула, но нет значений (он уже написан см. ниже) 2) Удалять все формулы в листе (он уже написан см. ниже) 3) Сохранить вкладку как новый файл с определенным именем файла "Файл 1" + дата. 4) Все это будет происходить без затрагивания исходного файла
Мой вариант, который не работает:
Все работало пока не совместил с другими макросами в один. Теперь при нажатии кноки макроса, удаляет ненужные строки, удаляет формулы и сохраняет как новый файл. Однако, при открытие созданного данной функцией файла, есть следующие проблемы:
1) Пустые строки не удалены (формулы удалены, новый файл создан) 2) Почему-то меняется цвет одной строки (был фиолетовый, стал желтый) 3) При открытии нового файла пишет, что коррупирован и открытие его может быть не безопасно (почему?) 4) Как в функции поменять, чтобы новый файл не просто датой назывался, а определенное имя файла "Файл 1" + дата.
[vba]
Код
Sub DeleteRows() Set rr = Range("A15:O226") For Each cell In rr cell.Select If cell.HasFormula = True And cell.Value = "" And cell.EntireRow.Hidden = False Then Rows(cell.Row).EntireRow.Hidden = True Next cell End Sub
Sub All_Formulas_To_Values_() ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value End Sub
Sub SaveAsNew() Dim FileN$ FileN = ThisWorkbook.Path & "\" & Date & ".xls" ThisWorkbook.Sheets(5).Copy ActiveWorkbook.SaveCopyAs FileN ActiveWorkbook.Close SaveChanges:=False MsgBox "Worksheet is saved as new file " & FileN End Sub
Sub AllOperations() Call DeleteRows Call All_Formulas_To_Values_ Call SaveAsNew End Sub
Не как новый файл, а как копию вновь созданного файла. И если при сохранении файла есть возможность превратить его в xls, то, при сохранении его копии, ее можно сохранить только в формате исходного файла.
Не как новый файл, а как копию вновь созданного файла. И если при сохранении файла есть возможность превратить его в xls, то, при сохранении его копии, ее можно сохранить только в формате исходного файла.RAN
Удаляет все строки в которых есть формула, но нет значений ("A15:O226").
Формула:
[vba]
Код
Sub DeleteRows() Set rr = Range("A15:O226") For Each cell In rr cell.Select If cell.HasFormula = True And cell.Value = "" And cell.EntireRow.Hidden = False Then Rows(cell.Row).EntireRow.Hidden = True Next cell End Sub
Не как новый файл, а как копию вновь созданного файла. И если при сохранении файла есть возможность превратить его в xls, то, при сохранении его копии, ее можно сохранить только в формате исходного файла.
Да, нужно чтобы создавался временный файл, в котором будут производится эти действия (по удалению строк и формул). Далее он будет сохраняться в тойже папке, под именем: "Нужное имя" + текущая дата.
Удаляет все строки в которых есть формула, но нет значений ("A15:O226").
Формула:
[vba]
Код
Sub DeleteRows() Set rr = Range("A15:O226") For Each cell In rr cell.Select If cell.HasFormula = True And cell.Value = "" And cell.EntireRow.Hidden = False Then Rows(cell.Row).EntireRow.Hidden = True Next cell End Sub
Не как новый файл, а как копию вновь созданного файла. И если при сохранении файла есть возможность превратить его в xls, то, при сохранении его копии, ее можно сохранить только в формате исходного файла.
Да, нужно чтобы создавался временный файл, в котором будут производится эти действия (по удалению строк и формул). Далее он будет сохраняться в тойже папке, под именем: "Нужное имя" + текущая дата.mrwad
Сообщение отредактировал mrwad - Среда, 06.07.2016, 16:13
Приложил файл. При нажатии кнопки, строки скрываются, нужно чтобы удалялись. На созданный файл почему-то постоянно ругается при открытии, пишет, что "корруппирован"? Формулы и строки удаляются в первоначальном файле, нужно чтобы удалялись только строки, а формулы оставались. В созданном новом файле удалялись и строки и формулы.
Спасибо!
Приложил файл. При нажатии кнопки, строки скрываются, нужно чтобы удалялись. На созданный файл почему-то постоянно ругается при открытии, пишет, что "корруппирован"? Формулы и строки удаляются в первоначальном файле, нужно чтобы удалялись только строки, а формулы оставались. В созданном новом файле удалялись и строки и формулы.