Есть ли способ в VBA отключить предупреждение, которое появляется при ручном удалении листа (щелчок правой кнопкой мыши по листу и удаление)? Я видел Application.DisplayAlerts = False , однако мне кажется, что это работает только при удалении листа с использованием VBA (Sheets("Sheet1").delete). Я пытаюсь отключить оповещение для всей книги, когда вы вручную щелкаете правой кнопкой мыши по листу и нажимаете "Удалить".

В качестве краткого изложения вопроса я пытаюсь исключить необходимость подтверждения удаления листа при представлении рабочей книги на собраниях. Просматривая листы, я часто дважды щелкаю на сводных таблицах, чтобы просмотреть детали, и я хотел бы исключить всплывающее предупреждение при удалении сгенерированного листа. Отключение оповещения должно происходить в VBA, поскольку его нужно включать и выключать автоматически при входе или выходе из представления презентации.

Любая помощь будет оценена! Благодарю.

2 ответа2

0

Нет НИКАКИХ команд или Опций или Методов, которые могли бы остановить «Предупреждения / предупреждения Excel».

Даже «Приложение.DisplayAlerts = False "не работает при использовании через Immediate Window в VBE. Единственный способ - использовать скрипт VBA.

Таким образом, приведенный ниже код может быть использован в качестве модуля для листа, который вы хотите УДАЛИТЬ без подтверждения.

Option Explicit

Sub Delete_without_warning()

 Dim i As Long

Application.DisplayAlerts = False

For i = 1 To Worksheets.Count
If Worksheets(i).Name Like "Sheet5" Then Worksheets(i).Delete
Next i

Application.DisplayAlerts = True

End Sub

Примечание: если вы хотите удалить более одного листа, используйте метод подстановочных знаков и замените командную строку 6 следующим:

Рабочие листы (я).Назовите, как «Данные *», затем рабочие листы (i).удалять

Excel удалит все листы без предупреждения, имя начинается с данных.

0

Если новые листы создаются только двойным щелчком по сводным таблицам, это может быть подходящим решением.

Помещенный в ThisWorkbook , приведенный ниже код удалит все новые листы после перехода на другой лист.


Option Explicit

'Place this code in ThisWorkbook module

'Expects that all new sheets are generated by double-clicking a pivot table

Private pivotWs As Worksheet

Private Sub Workbook_NewSheet(ByVal Sh As Object)
    Set pivotWs = Sh
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    If Not pivotWs Is Nothing Then
        If Sh.Name = pivotWs.Name Then
            Application.DisplayAlerts = False
            pivotWs.Delete
            Set pivotWs = Nothing
            Application.DisplayAlerts = True
        End If
    End If
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .