在我的工作簿中,我有一个包含表单名称列表的工作表,每个表单名称都在一个单独的行中。对于这些行中的每一行,都有一个单独的工作表,其中包含有关该表单信息的表单名称。
我想要包含此功能:
当用户从第一个工作表中删除一行时,相应的工作表也会被删除。
我的初始方法尝试使用Worksheet_Change事件来触发代码以从已删除的行中捕获表单名称,然后删除具有该名称的工作表,但由于该行已被删除,因此无法捕获该数据。
这项功能可行吗?感谢。
答案 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