我想在删除另一个工作表中的行时删除工作表(EXCEL 2007)

时间:2013-09-11 17:15:00

标签: excel worksheet

在我的工作簿中,我有一个包含表单名称列表的工作表,每个表单名称都在一个单独的行中。对于这些行中的每一行,都有一个单独的工作表,其中包含有关该表单信息的表单名称。

我想要包含此功能:

当用户从第一个工作表中删除一行时,相应的工作表也会被删除。

我的初始方法尝试使用Worksheet_Change事件来触发代码以从已删除的行中捕获表单名称,然后删除具有该名称的工作表,但由于该行已被删除,因此无法捕获该数据。

这项功能可行吗?感谢。

1 个答案:

答案 0 :(得分:0)

使用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列 - 如果不是,则更改Cells(引用中的1