【发布时间】:2020-02-11 22:22:27
【问题描述】:
我有一个选项卡,可以在其中在单元格中输入某个数字(1 到 20 之间)。当我输入数字时,我想自动删除另一个选项卡中的列。
下一个选项卡有一个包含 20 列的表格。如果我在选项卡 1 的单元格中输入数字 1,我想自动删除选项卡 2 中的第 2 到 20 列。
我不想手动运行宏,而是在输入值时自动执行删除过程。
像这样开始的东西会起作用吗?
Private Sub Workbook_Change(ByVal Target As Excel.Range)
If Target.Address = "$B$2" Then
If Target.Value = 1 Then Columns("B:T").Delete
End If
End Sub
我会将代码直接放在表 1 中,在其中输入值(假设在单元格 B2 中)。然后,如果我输入 1 值,它将删除列 B 到 T(2 到 19)。
我需要参考工作表 2 来删除这些列。
我是否应该继续将值 2、3、4、... 的 If 语句添加到 20 并更改我的列删除语句?
C 到 V 列将根据我在另一张表中输入的数字被删除或添加,X 列将是行上指示的数字的总和(从 C 列到 V 列)。 Z 列有一个公式链接到另一个工作表(现在为空,因此为 0),AB 列将 X 列除以 Z 列。
【问题讨论】:
-
看看
Worksheet.Change事件。非常可行。 -
谢谢,我已经用代码的开头更新了我的问题。
-
所以你只想保留放入B2的列号?
-
您使用的表格实际上是格式化为表格 (Ctrl+T) 的吗?
-
@urdearboy:实际上不,这是小于或等于我输入的数字的列。 B2中的数字将表示项目的数量,然后在Sheet中我想为所有项目保留一列,如果我放5,那么我应该为每个项目保留5列。