我在Excel中有一个名为StartDates的命名范围。指定的范围只包含日期。下面的代码示例如下:命名范围的数据类型
Sub test2()
Dim dat_readdates() As Date
dat_readdates = Range("StartDates").Value
End Sub
这总是导致公告运行时错误'13':类型不匹配。
一个简单的改变,它工作正常。
Sub test2()
Dim var_readdates() As Variant
var_readdates = Range("StartDates").Value
End Sub
是否有一个已知的规则,数据必须作为变体数据类型读入?显然,为了提高速度,我希望使用最适合读取数据的数据类型。 我是否需要将它作为变体读取,然后使用cDate转换为日期类型的另一个变量?我可以做一个质量转换如:
dat_readdates = cDate(var_readdates)
如果你检查'Typename(var_readdates(1,1))'',你会得到什么?如果你的范围有日期,那么它应该已经是'日期'了...... –
@TimWilliams,那么它应该是'Variant/Date',而不是原生VBA'Date'。 OP想与本地变量:) –