Удаление листов по кнопке в форуме Вопросы по Microsoft Excel.
Добрый день! МатросНаЗебре помог с макросом - по кнопке вставляет листы в книгу и именует их датами по возрастанию (при этом кнопка копирования при вставке нового листа с предыдущего удаляется):
====code====
Sub Копировать_лист()
SheetCopy ActiveSheet
End Sub
Sub SheetCopy(shSource As Worksheet)
Dim sName As String
sName = shSource.Name
If sName Like "*.*" Then
If IsDate(sName & "." & Year(Date)) Then
Dim dt As Date
dt = CDate(sName & "." & Year(Date))
dt = dt + 1
sName = Format(dt, "DD.MM")
Dim shTarget As Worksheet
On Error Resume Next
Set shTarget = shSource.Parent.Worksheets(sName)
On Error GoTo 0
If Not shTarget Is Nothing Then
If MsgBox("Лист " & sName & " существует. Удалить?", vbQuestion + vbYesNo, "Копирование листа") = vbYes Then
Application.DisplayAlerts = False
shTarget.Delete
Application.DisplayAlerts = True
Set shTarget = Nothing
End If
End If
If shTarget Is Nothing Then
shSource.Copy After:=shSource
Set shTarget = shSource.Parent.Worksheets(shSource.Index + 1)
shTarget.Name = sName
' shTarget.Buttons.Delete ' удаляеткнопку на текущем листе
shSource.Buttons.Delete 'удаляет кнопку на предыдущем листе
' shSource.Activate
End If
End If
End If
End Sub
=============
А помогите, пожалуйста, реализовать ту же задачу, только наоборот - по кнопке удалить все листы, за исключением одного, на котором кнопки копирования и удаления (хотелось бы чтобы кнопки копирования и удаления также удалялись с предыдущих листов, оставались только на активном (вновь созданным))?
Пример шаблон.xlsx13.10.2026 15:03:38, evg_glaz.
Добрый день!
МатросНаЗебрепомог с макросом - по кнопке вставляет листы в книгу и именует их датами по возрастанию (при этом кнопка копирования при вставке нового листа с предыдущего удаляется):
| Код |
|---|
Sub Копировать_лист()
SheetCopy ActiveSheet
End Sub
Sub SheetCopy(shSource As Worksheet)
Dim sName As String
sName = shSource.Name
If sName Like "*.*" Then
If IsDate(sName & "." & Year(Date)) Then
Dim dt As Date
dt = CDate(sName & "." & Year(Date))
dt = dt + 1
sName = Format(dt, "DD.MM")
Dim shTarget As Worksheet
On Error Resume Next
Set shTarget = shSource.Parent.Worksheets(sName)
On Error GoTo 0
If Not shTarget Is Nothing Then
If MsgBox("Лист " & sName & " существует. Удалить?", vbQuestion + vbYesNo, "Копирование листа") = vbYes Then
Application.DisplayAlerts = False
shTarget.Delete
Application.DisplayAlerts = True
Set shTarget = Nothing
End If
End If
If shTarget Is Nothing Then
shSource.Copy After:=shSource
Set shTarget = shSource.Parent.Worksheets(shSource.Index + 1)
shTarget.Name = sName
' shTarget.Buttons.Delete ' удаляеткнопку на текущем листе
shSource.Buttons.Delete 'удаляет кнопку на предыдущем листе
' shSource.Activate
End If
End If
End If
End Sub
|
А помогите, пожалуйста, реализовать ту же задачу, только наоборот - по кнопке удалить все листы, за исключением одного, на котором кнопки копирования и удаления (хотелось бы чтобы кнопки копирования и удаления также удалялись с предыдущих листов, оставались только на активном (вновь созданным))?
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | экспоненциальные числа при переносе | 0 | 8.17 | 30-09-2026 |
| 2 | Макрос для создания данных на нужном листе | 0 | 6.6 | 01-10-2026 |
| 3 | Сгруппировать таблицы одну под одной автоматечески из разных листов | 0 | 4.58 | 02-10-2026 |
| 4 | Скопировать определенное количество отфильтрованных ячеек | 0 | 11.46 | 07-10-2026 |
| 5 | макрос по скрытию столбцов | 0 | 10.84 | 09-10-2026 |
| 6 | Заливка цветов с помощью макроса | 0 | 8.29 | 12-10-2026 |
| 7 | Подстановка данных после сравнения частей двух ячеек | 0 | 5.59 | 08-10-2026 |
| 8 | Сброс счётчиков нажатий на картинку по достижении определённых значений. | 0 | 6.71 | 11-10-2026 |
| 9 | Power Query сравнение двух таблиц и обьединение | 0 | 4.86 | 01-10-2026 |
| 10 | Расчет количества дней, срок отклонения рассмотрения | 0 | 5.99 | 12-10-2026 |