当列中的值发生更改时删除关联的单元格

我有一个Excel表格,有三列:
员工编号
员工姓名
可用性

我试图做的是,当可用性值从一个数字变为无, 员工号码和与该行相关的员工姓名得到删除线。
此外,当添加可用性号码删除线消失。
我已经在下面写了一些代码,但是我不知道我是否正朝着正确的方向前进。

Sub change(ByVal Target As Range) Dim ws As Worksheet Dim watchrange As Range dim intersectrange as range Set ws = Worksheets("Workbench Report") endrow = ws.Cells(ws.Rows.count, "E").End(xlUp).Row Set watchrange = Range("E2:E" & endrow) Set intersectrange = Intersect(Target, watchrange) If intersectrange = "" Then ws.Range("B" & rng.Row).Resize(1, 2).Font.Strikethrough = True Else 'do nothing End If End Sub 

有人可以帮我吗?

先谢谢你

有了这样的数据:

在这里输入图像说明

这个工作表事件macros:

 Private Sub Worksheet_Change(ByVal Target As Range) Dim watchrange As Range, r As Range, rw As Long Dim intersectrange As Range, endrow As Long endrow = Cells(Rows.Count, "A").End(xlUp).Row Set watchrange = Range("C2:C" & endrow) Set intersectrange = Intersect(Target, watchrange) If intersectrange Is Nothing Then Exit Sub For Each r In intersectrange rw = r.Row If r.Value = "" Then Range("A" & rw & ":B" & rw).Font.Strikethrough = True Else Range("A" & rw & ":B" & rw).Font.Strikethrough = False End If Next r End Sub 

将满足您的需求。 您需要调整列以匹配您的数据模式。

因为它是工作表代码,所以安装和自动使用非常简单:

  1. 右键单击Excel窗口底部附近的选项卡名称
  2. select查看代码 – 这会popup一个VBE窗口
  3. 粘贴东西,closuresVBE窗口

如果您有任何疑问,请先在试用工作表上尝试。

如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除macros:

  1. 调出上面的VBE窗口
  2. 清除代码
  3. closuresVBE窗口

要了解有关事件macros(工作表代码)的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/event.htm

编辑#1:

此代码由对列C的更改触发,并驻留在该工作表的代码区域中。

如果你的button代码改变了那些列的C值,那么这个事件代码就可以使用它。