vba - 日和年反转 VBA
问题描述
我正在尝试比较我编写的 vba 脚本中的日期,但是我遇到了一个问题,即输入格式函数的日期将日期读取为年份,将年份读取为日期。您可以想象这会显着抛出脚本,从而导致许多错误。有问题的日期值被格式化为日期,因为我通过 IsDate 函数运行它们并返回了一个真值。
当我使用 Format(ws.Cells(i, 1).Value,"dd-MM-yy") 转换格式时,我在即时窗口中收到以下数据。
以下是我在即时窗口中比较它们的脚本,以及我从中获得这篇文章中使用的照片的地方。
Sub Rem9()
Dim i As Long
Dim lr As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
wsName = ws.Name
lr = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
FirstDateRead = CDate("1, 1,2018") 'Initialize the first Day of the year as the last day
For i = 1 To lr
Debug.Print FirstDateRead
Debug.Print CStr(ws.Cells(i, 1).Value)
Debug.Print DateDiff("m", ws.Cells(i, 1).Value, FirstDateRead)
Next i
End Sub
解决方案
你可以修复日期格式
Function FixDateFormat(strDate As String) As String
Dim datePartsArray
datePartsArray = Split(strDate, "-")
FixDateFormat = datePartsArray(1) & "-" & datePartsArray(0) & "-" & datePartsArray(2)
End Function
推荐阅读
- sass - 有没有办法设置 node-sass 配置文件?
- php - 如何在 foreach 之外获取所有 xml 数据或如何在 xml 中声明此 foreach
- git - Git - 在特定提交之前压缩历史中的所有提交
- amazon-web-services - 无法启动 Redis In-Memory Data Store。Ubuntu 18.04
- php - 在 Laravel&Angular 项目中分离 AngularJS 控制器文件
- mysql - 数据库设计 SQL 和转换表
- php - 在 Magento 2.2.3 中构建自定义支付网关
- excel - 如何在 VB6 的文本框或收件箱中键入 +-*/ 来制作我的公式?
- c# - WPF - 更换功能区
- radare2 - 如何使用雷达获取地址的价值