использование VBA для удаления листов с определенной строкой - PullRequest
0 голосов
/ 08 февраля 2019

В настоящее время я изучаю VBA.

Я смотрю эту серию обучающих видео на YouTube, посвященных тому, как использовать VBA для использования цикла и оператора if для создания дубликатов моих листов и как их удалять.

Я изменил свой код на следующий:

Sub deleteloop()       
    Dim x As Worksheet    
    Dim y As String
    Dim z As String

    Application.DisplayAlerts = False

    For Each x In ActiveWorkbook.Sheets        
        y = x.Name     
        z = VBA.right(y, 3)       
        If z = "(2)" Then
            ActiveSheet.delete           
        End If
    Next x

    Application.DisplayAlerts = True
End Sub

Как вы можете себе представить, мои дублированные листы имеют "(2)" в конце своей строки, поэтому идея для моего кодаудалить все дублированные листы, используя это.

Проблема состоит в том, что он удаляет все дублированные листы, кроме последнего, и мне нужно запустить его снова, чтобы удалить последний оставшийся лист с "(2)" наконец.

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 08 февраля 2019

Измените ActiveSheet.delete на x.delete, если хотите удалить просматриваемый лист, а не тот, который в данный момент активен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...