Я хочу удалить рабочий лист, когда удаляю строку на другом листе (EXCEL 2007)

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

Я хотел бы включить эту функцию:

Когда пользователь удаляет строку из первого рабочего листа, соответствующий рабочий лист также удаляется.

Мой первоначальный подход пытался использовать событие Worksheet_Change для запуска кода для захвата имени формы из удаленной строки, а затем для удаления рабочего листа с этим именем, но я не могу захватить эти данные, поскольку строка уже удалена.

Возможен ли этот функционал? Спасибо.


person user2769652    schedule 11.09.2013    source источник


Ответы (1)


используйте selection change, чтобы получить имя листа для строки, в которой они находятся, и событие изменения, чтобы удалить лист.

Что-то вроде этого:

Option Explicit
Dim SheetName As String

Private Sub Worksheet_Change(ByVal Target As Range)
If SheetName = "" Then Exit Sub
If Target.Rows.Count > 1 Then Exit Sub
If Cells(Target.Row, 1) = "" Then Exit Sub 'Inserted a row?
If Cells(Target.Row, 1) <> SheetName Then
    Worksheets(SheetName).Delete
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Rows.Count = 1 Then
    SheetName = Cells(Target.Row, 1)
Else
    SheetName = ""
End If
End Sub

Я предполагаю, что имя вашего листа находится в 1-м столбце. Если нет, измените 1 в ссылке Cells(

person SeanC    schedule 11.09.2013