Vba 列中的值更改时删除关联的单元格
Vba 列中的值更改时删除关联的单元格,vba,excel,Vba,Excel,我有一个excel表格,它有三列:员工编号员工姓名可用性我试图做的是当可用性值从一个数字变为零时,员工编号和员工姓名与该行关联的将获得删除线此外,如果添加了可用性编号,删除线将消失我已经在下面写了一些代码,但我不知道我的方向是否正确 Sub change(ByVal Target As Range) Dim ws As Worksheet Dim watchrange As Range dim intersectrange as range Set ws = Worksheets("Workb
我有一个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
将满足您的需要。您需要调整列以匹配数据架构
由于它是工作表代码,因此安装和自动使用非常容易:
如果按钮代码更改了这些列C值,那么这个事件代码就可以使用了。因此,如果我从一个命令按钮运行这个代码,而该按钮上已经有了带有click事件的代码,我可以将这个代码转换成一个公共子代码,并在命令按钮事件中调用它吗?@Briannatates请参阅我的编辑#1我唯一的问题是,保存我代码的excel工作簿正在拉取我希望能够删除的工作表,以便在每次创建新工作表时删除代码added@BriannaCates如果按钮代码正在执行C列更改,然后让它也执行A列和B列格式的更改,忘记使用事件宏。我只是让它成为一个子并在我的命令按钮下调用它,使它工作,但你的代码工作得很好!非常感谢:)