【问题标题】:I want to delete a worksheet when I delete a row in another worksheet (EXCEL 2007)当我删除另一个工作表中的一行时,我想删除一个工作表(EXCEL 2007)
【发布时间】:2013-09-12 01:27:28
【问题描述】:

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

我想加入这个功能:

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

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

这个功能可行吗?谢谢。

【问题讨论】:

    标签: excel worksheet


    【解决方案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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多