0

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

我想包括这个功能:

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

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

这个功能可以吗?谢谢。

4

1 回答 1

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

我假设您的工作表名称在第一列 -Cells(如果不是,请更改参考中的 1

于 2013-09-11T17:27:28.973 回答