excel - 计算自用户输入日期以来经过了多少天
问题描述
我试图让用户在单元格中输入日期。使用输入日期和今天的日期,我将计算自用户输入日期以来已经过去了多少天。
示例:用户在单元格 (C4) 中输入“2/15/2019” - 第二天显示“1 天/秒”,依此类推。
我已经搜索并尝试了很多东西但都失败了,无论如何我都不是 excel 或 VBA 专家,所以我什至不确定这是否可能。
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("L:L")) Is Nothing Then
With ActiveWorkbook.Worksheets("Ended")
Application.EnableEvents = False
Target = "Today()" - Target
Application.EnableEvents = True
End With
End If
这个问题可以通过这个公式解决,但是我不能使用 VBA 将它应用于用户输入日期。
=TODAY()-DATEVALUE("15/2/2020")
解决方案
我还没有足够的声誉来发表评论,所以我会尝试根据你所说的来回答。
你在写轨道上,只需要让它使用 Target.Formula 输入一个公式。
我经常为在 Excel 公式中使用日期而苦恼。最简单的方法是使用日期的数值。您可以通过使用 CLng() 将日期转换为 Long 来做到这一点。
完整的鳕鱼读取线
Target.Formula = "=Today() - " & CLng(Target)
正如其他人也提到的那样,您将在用户输入日期后将一个数字写回到一个具有日期格式的单元格中。例如,如果我在单元格中输入 01/02/2020(dd/mm/yyyy 是我的本地日期格式),它会将 Target 设置为等于 16/02/2020 - 01/02/2020,即 15 天,但是除非您将单元格的格式更改为数字,否则单元格将具有 15/01/1900(计算机日期从 01/01/1900 开始)。您可以使用
Target.NumberFormat = "0"
推荐阅读
- facebook-graph-api - Instagram Webhook 订阅失败
- powershell - 如何从 bat 文件中暂停 Powershell 的输出
- undertow - 如何在 Cloud Run 中阻止 Undertow 触发来自 gVisor 的警告
- awk - awk 中的更多条件;根据条件添加列
- git - 将 git log 限制为在某个分支期间提交
- spring - oswsssupport.KeyStoreFactoryBean : 创建空密钥库
- html - 如何使用animejs在Html5画布中实现移动字母动画
- wso2 - 我们可以在 x-mediation-script 中使用 $ref 吗?
- java - Spring boot 2.0.5项目CORS问题:将CORS头添加到http响应中
- java - 2个具有相同ID的类如何更改属性并在两者中反映