我在excel中编写了一个vba子例程,用于存储单个维度数组中两个日期之间的所有日期值,然后检查另一个工作表中某个范围内的每个值.
我的问题是当代码抓取日期值时(作为一个整数(或双倍 - 无论它实际使用的是什么))它存储的值1462大于工作表上的日期值.
我使用1904日期系统,所以我可以使用负时间值,我在澳大利亚所以日期格式为dd/mm/yyyy.
举个例子;
在工作表上:01/01/2019 = 42004
在代码中:01/01/2019 = 43466
我理解差异与使用1900和1904日期系统时日期值之间的差异相同,这让我相信VBA可能会将工作表值默认为1900并在代码运行时将值再次转换为1904?
此工作簿设置如下:
Sheet1包含日期:01/01/2019至25/01/2019 inRange("A1:A25").
Sheet2包含01/01/2019 in cellA1和10/01/2019 in cellA2和activeXcommandbutton.
和代码:
Private Sub CommandButton1_Click()
Dim myStart As Long
Dim myEnd As Long
myStart = Me.Range("A1").Value
myEnd = Me.Range("A2").Value
Dim v As Variant
Dim x As Long
Dim myArr As Variant
ReDim myArr(0 To 100)
x = 0
For v = myStart To myEnd
If v = Empty Then Exit …Run Code Online (Sandbox Code Playgroud)