Добрый день. Ситуация: В книге два листа. Второй лист формируется на базе первого с использованием функции ВПР и скрытого фильтра. Прошу помощи в написании макроса, который бы саздавал новую книгу копировал в нее второй лист "Регистр" превратив все формулы ВПР в значения, а формулы для промежуточных итогов оставил и сохранил книгу в новую папку на рабочем столе с названием листа +дата, то есть в данном случае Регистр 30.01.2015
Добрый день. Ситуация: В книге два листа. Второй лист формируется на базе первого с использованием функции ВПР и скрытого фильтра. Прошу помощи в написании макроса, который бы саздавал новую книгу копировал в нее второй лист "Регистр" превратив все формулы ВПР в значения, а формулы для промежуточных итогов оставил и сохранил книгу в новую папку на рабочем столе с названием листа +дата, то есть в данном случае Регистр 30.01.2015mihalix
Здравствуйте! Макрос удаления формул из выделенных ячеек (в Вашем случае еще и только видимых): [vba]
Код
Sub All_Formulas_To_Values_OnlyVisible() Dim rRng As Range, rArea As Range If Selection.Count = 1 Then Set rRng = ActiveCell Else Set rRng = Selection.SpecialCells(12) End If For Each rArea In rRng.Areas rArea.Value = rArea.Value Next rArea End Sub
[/vba]
Скопировать лист в новую книгу можно так:
[vba]
Код
Sheets("Регистр").Select Sheets("Регистр").Move
[/vba]
А потом просто сохранить Вашу книгу: [vba]
Код
ActiveWorkbook.SaveAs FileName:= "Полный путь к папке" & "Регистр" & Date & ".xlsx"
[/vba]
Здравствуйте! Макрос удаления формул из выделенных ячеек (в Вашем случае еще и только видимых): [vba]
Код
Sub All_Formulas_To_Values_OnlyVisible() Dim rRng As Range, rArea As Range If Selection.Count = 1 Then Set rRng = ActiveCell Else Set rRng = Selection.SpecialCells(12) End If For Each rArea In rRng.Areas rArea.Value = rArea.Value Next rArea End Sub
[/vba]
Скопировать лист в новую книгу можно так:
[vba]
Код
Sheets("Регистр").Select Sheets("Регистр").Move
[/vba]
А потом просто сохранить Вашу книгу: [vba]
Код
ActiveWorkbook.SaveAs FileName:= "Полный путь к папке" & "Регистр" & Date & ".xlsx"
Спасибо за информацию. Прописал в файле, но: - формулы не убираются - файл после сохранения остается открытым, что добавить, чтоб он был закрыт. - при сохранении выскакивает сообщение что макросы будут отрублены или сохраниете в другом формате, как сделать, чтоб без этого сообщения автоматом убирал макросы, в т.ч. чтоб кнопка для сохранения исчезала.
Спасибо за информацию. Прописал в файле, но: - формулы не убираются - файл после сохранения остается открытым, что добавить, чтоб он был закрыт. - при сохранении выскакивает сообщение что макросы будут отрублены или сохраниете в другом формате, как сделать, чтоб без этого сообщения автоматом убирал макросы, в т.ч. чтоб кнопка для сохранения исчезала.mihalix
Ранее я писала, что макрос удаляет формулы только с выделенных ячеек, а у Вас только 1 ячейка активна, следовательно формула удаляется только из нее (если она там есть).
Посмотрите в приложенном файле, как, например, можно пройтись по всем ячейкам листа.
файл после сохранения остается открытым, что добавить, чтоб он был закрыт.
Запишите макросом закрытие книги и посмотрите код, не ленитесь, он очень простой.
3. По третьему пункту: переместите Ваш макрос из модуля листа в обычный модуль, тогда при копировании листа макрос останется только в исходной книге. Удаление кнопки тоже можно записать макросом и посмотреть код, будет что-то похожее на [vba]
Ранее я писала, что макрос удаляет формулы только с выделенных ячеек, а у Вас только 1 ячейка активна, следовательно формула удаляется только из нее (если она там есть).
Посмотрите в приложенном файле, как, например, можно пройтись по всем ячейкам листа.
файл после сохранения остается открытым, что добавить, чтоб он был закрыт.
Запишите макросом закрытие книги и посмотрите код, не ленитесь, он очень простой.
3. По третьему пункту: переместите Ваш макрос из модуля листа в обычный модуль, тогда при копировании листа макрос останется только в исходной книге. Удаление кнопки тоже можно записать макросом и посмотреть код, будет что-то похожее на [vba]
Кнопку по Вашей подсказке удалить не получилось (ошибка выскакивала), но результата достиг по другому, удаляю на основной книге - копирую, а потом повторно создаю: [vba]
Код
Sub Save_list() ' Сохранение листа Sheets("Регистр12").Select ActiveSheet.Buttons.Delete Sheets("Регистр12").Copy Set wbReg = ActiveWorkbook Dim rRng As Range, rArea As Range Dim i As Integer i = 5 While Range("A" & i) <> "" wbReg.Sheets(1).Range("D" & i & ":F" & i).Select On Error Resume Next If Left(wbReg.Sheets(1).Range("A" & i), 7) <> "Выручка" And Selection.SpecialCells(12).Count > 0 Then Set rRng = Selection.SpecialCells(12) For Each rArea In rRng.Areas rArea.Value = rArea.Value Next rArea End If i = i + 1 Wend wbReg.SaveAs Filename:="d:\Users\user-zuk\Desktop\" & "Регистр12 " & Date & ".xlsx" wbReg.Close ActiveSheet.Buttons.Add(15.75, 6.75, 255, 25.5).Select Selection.OnAction = "ЭтаКнига.Save_list" Selection.Characters.Text = "Сохранить на рабочий стол" End Sub
[/vba] Перенос кода из листа в книгу дал результат!
Можно ли еще прописать что бы скрытые строки при копировании удалялись?
Кнопку по Вашей подсказке удалить не получилось (ошибка выскакивала), но результата достиг по другому, удаляю на основной книге - копирую, а потом повторно создаю: [vba]
Код
Sub Save_list() ' Сохранение листа Sheets("Регистр12").Select ActiveSheet.Buttons.Delete Sheets("Регистр12").Copy Set wbReg = ActiveWorkbook Dim rRng As Range, rArea As Range Dim i As Integer i = 5 While Range("A" & i) <> "" wbReg.Sheets(1).Range("D" & i & ":F" & i).Select On Error Resume Next If Left(wbReg.Sheets(1).Range("A" & i), 7) <> "Выручка" And Selection.SpecialCells(12).Count > 0 Then Set rRng = Selection.SpecialCells(12) For Each rArea In rRng.Areas rArea.Value = rArea.Value Next rArea End If i = i + 1 Wend wbReg.SaveAs Filename:="d:\Users\user-zuk\Desktop\" & "Регистр12 " & Date & ".xlsx" wbReg.Close ActiveSheet.Buttons.Add(15.75, 6.75, 255, 25.5).Select Selection.OnAction = "ЭтаКнига.Save_list" Selection.Characters.Text = "Сохранить на рабочий стол" End Sub
[/vba] Перенос кода из листа в книгу дал результат!
Можно ли еще прописать что бы скрытые строки при копировании удалялись?mihalix
Сообщение отредактировал mihalix - Понедельник, 02.02.2015, 18:58
Manyasha, огромное спасибо. Основную проблему данной темы (превратить все формулы ВПР в значения, а формулы для промежуточных итогов оставить ) Вы решили. Что бы не было замечаний, другие вопросы выложу в новой теме.
Manyasha, огромное спасибо. Основную проблему данной темы (превратить все формулы ВПР в значения, а формулы для промежуточных итогов оставить ) Вы решили. Что бы не было замечаний, другие вопросы выложу в новой теме.mihalix