vba - 删除某些时间 VBA
问题描述
我希望有人可以帮助我解决这个问题。我正在尝试删除 VBA 上 00:00:00 - 22:59:59 之间的任何值。
我使用以下方法将时间与日期分开:
ActiveCell.FormulaR1C1 = "=RIGHT(RC[1],8)"
例如,这给我留下了 00:27:37。
我已经搜索了很多答案,但找不到足够的解决方案。我尝试使用以下方法,但没有奏效:
Dim lr As Long, i As Long
lr = Cells(Rows.Count, "B").End(xlUp).Row
For i = lr To 1 Step -1
If IsNumeric(Cells(i, "B")) And _
Cells(i, "B").Value2 < TimeSerial(23, 0, 0) And _
Cells(i, "B").Value2 <> "" Then
Rows(i).EntireRow.Delete
End If
Next i
先感谢您。
解决方案
Excel 中的日期和时间是数值,其中日期表示为整数(自 1900 年 1 月 1 日以来的天数),时间表示为数字的小数部分,范围在 0 (00:00) 之间并且 < 1 (24:00)
因此,您可以通过以下方式隔离组合日期/时间值的时间
vTime = vDateTime - Int(vDateTime)
然后,您查找的时间是 >= 23:00,在数字方面是 >= 23/24
例子:
Sub Find23()
Dim vTime As Date, vDateTime As Date
vDateTime = #7/17/2018 11:00:00 PM#
Debug.Print vDateTime
vTime = vDateTime - Int(vDateTime)
Debug.Print vTime
If vTime >= 23 / 24 Then
Debug.Print "it was late in the evening ..."
' do your stuff here
End If
End Sub
推荐阅读
- ansible - 可以根据主机名值执行任务
- database-design - 随着时间的推移扩展项目和数据库的正确方法
- networking - 安装 Openstack 和 Opendaylight
- r - 边际结构模型:如何将时变治疗和过去治疗的条件结合起来
- mysql - 使用 MySQL 检查数据的一对一相关性
- r - 用glance()比较不同的模型
- c# - 如何使用具有不同配置的 msbuild 构建项目,但在 Debug/Release 中构建依赖项?
- api - Instagram Graph API 未返回所有评论
- apache-camel - Camel FTP - 移动查询参数与 to() 方法
- mysql - 实体框架核心 - PersistKeysToDbContext mysql 问题