小编Sam*_*son的帖子

VBA识别/默认哪个日期系统?

我在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 in Range("A1:A25").

Sheet2包含01/01/2019 in cell A1和10/01/2019 in cell A2和activeX commandbutton.

和代码:

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)

excel vba date

3
推荐指数
1
解决办法
179
查看次数

标签 统计

date ×1

excel ×1

vba ×1