我有一个包含三列的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
有人可以帮我吗?
先感谢您
带有如下数据:
此工作表事件宏:
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
会满足您的需求。您需要调整列以匹配您的数据模式。
由于它是工作表代码,因此非常易于安装和自动使用:
如果您有任何疑问,请先在试用版工作表上进行尝试。
如果您保存工作簿,则宏将随其一起保存。如果您在2003年以后使用Excel版本,则必须将文件另存为.xlsm而不是.xlsx
删除宏:
要了解有关事件宏(工作表代码)的更多信息,请参见:
http://www.mvps.org/dmcritchie/excel/event.htm
编辑#1:
该代码由对C列的更改触发,并驻留在该工作表的工作表代码区域中。
如果您的按钮代码更改了这些列C的值,则此事件代码将与之一起使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句