excel - 计算后如何让单元格继承新值?
问题描述
嘿伙计们,我需要一点帮助。我好久没做excel了,所以我完全生疏了。我目前正在尝试制作一个计算当前员工 PTO 时间并扣除在单元格中添加值后使用的小时数的 Excel 表。
例如
我有一个单元格“C2”,其中包含员工当前可用的 PTO 时间
另一个单元格“D2”作为员工使用 PTO 时间的时间。
和充当“更新值”的单元格“E2”
我最初将“E2”设置为 =C2-D2 以减去当前可用 PTO 值使用的 PTO 时间。
计算完成后,是否可以让“C2”使用新的当前可用 PTO 值继承其值?还是我只需要手动更新值?
谢谢你的帮助!
解决方案
单排解决方案
如果您对VBA
解决方案持开放态度,则可以使用Worksheet_Change
事件将计算移至后端并避免循环引用。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D3")) Is Nothing Then
If Target.Count = 1 Then
Application.EnableEvents = False
Range("C3") = Range("C3") - Range("D3")
Range("D3").ClearContents 'If you want to reset the Used PTO box after each use
Application.EnableEvents = True
End If
End If
End Sub
当您更新Used PTO
单元格时,Available PTO
计数将相应更新。请注意,这也允许该值变为负数
动态解决方案
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo SafeExit
If Not Intersect(Target, Range("D:D")) Is Nothing Then
If Target.Count = 1 Then
Application.EnableEvents = False
Range("C" & Target.Row) = Range("C" & Target.Row) - Range("D" & Target.Row)
Range("D" & Target.Row).ClearContents
Application.EnableEvents = True
End If
End If
Exit Sub
SafeExit:
Application.EnableEvents = True
MsgBox "Last Update NOT Registered", vbCritical, "Error Occured"
End Sub
推荐阅读
- javascript - 响应视图中 React Slick Slider 的宽度错误
- php - 文件不会移动到我创建的文件夹路径,但查询会发送到数据库
- c# - 通过使用 Microsoft Bot Framework 将 Cortana 作为通道添加到我的机器人而出现错误
- swift - Swift Playgrounds:使用未解析的标识符“模型”
- python - 多文件上传 DRF
- node.js - 无法使用 Chrome DevTools 调试 node.js
- java - 在java中将JSON转换为PDF的最简单方法?
- matplotlib - 是否可以在 Matplotlib 的表面上绘图?
- php - 将 opencart 网站移动到新域/服务器的问题
- arduino - 使用在 void receiveEvent 中获取的变量时出现问题,在 void 循环内