Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 为什么午夜被添加到我的数组而不是日期?_Excel_Vba - Fatal编程技术网

Excel 为什么午夜被添加到我的数组而不是日期?

Excel 为什么午夜被添加到我的数组而不是日期?,excel,vba,Excel,Vba,我将日期数组声明为: Dim date_array() as Date 它的目标是存储在一个范围内找到的日期 Dim date_range As String 我将其声明为字符串,因为我有一个用户指定日期范围的输入表单(例如A1:A5) 然后计算该范围内的单元格数量,并指定日期数组的大小 ReDim date_array(Range(date_range).Cells.count) 到目前为止还不错。然后我循环遍历date_数组的每个元素,并从范围中添加日期 Dim i As Long i

我将日期数组声明为:

Dim date_array() as Date
它的目标是存储在一个范围内找到的日期

Dim date_range As String
我将其声明为字符串,因为我有一个用户指定日期范围的输入表单(例如A1:A5)

然后计算该范围内的单元格数量,并指定日期数组的大小

ReDim date_array(Range(date_range).Cells.count)
到目前为止还不错。然后我循环遍历date_数组的每个元素,并从范围中添加日期

Dim i As Long
i = 0
For Each r In ThisWorkbook.Worksheets("Name").Range(date_range)
    date_array(i) = r.Value
    i + i + 1
Next r
然而,当我在这个循环中执行MsgBox(date_array(I))时,我得到的值是12:00:00am,而不是我想要的日期(例如2019年2月2日),这告诉我在翻译过程中有些东西丢失了

如果我使用MsgBox(r.Value),我会得到正确的结果。。。所以我给数组分配日期的方式似乎有点错误

以前有人遇到过这样的问题吗?我怎样才能修好它

更大的目标是使用日期+命名约定作为验证在两个文件之间映射数据,因此我需要数组以日期格式存储正确的日期,以便以后可以将其与不同的单元格值进行比较


谢谢,

尝试:
MsgBox格式(日期数组(i),“mm/dd/yyyy”)
您能展示一些日期范围内数据的示例(可能是屏幕截图)吗?
ReDim date\u数组(范围(日期范围).Cells.count)
0
重拨到计数,这可能不是您想要的(我假设您想要
1
,否则数组将有一个空元素)。尝试将
date\u数组设置为
a
Double
并使用
date\u数组(I)=r.Value2
Excel将日期存储为双精度,并以特定方式进行格式化。但它们不是日期的双精度。通过将日期存储为日期,假定该格式,但从非默认格式的其他格式转换时可能会出错。