gpt4 book ai didi

vba - 从 4 列函数获取最新日期

转载 作者:行者123 更新时间:2023-12-04 10:52:31 24 4
gpt4 key购买 nike

我有以下查询“qryE”。

Equipment   E1_45J          E2_45J         E3_45J      E4_45J
400 2019-03-25 2019-10-07
401 2019-04-01 2019-10-23
402 2019-02-14 2019-08-25 2019-11-11
403 2019-02-11 2019-09-05 2019-11-25

我做了一个函数来返回这 4 列之间的最新值:
Function getmaxdate(dteDate1 As Date, dteDate2 As Date, dteDate3 As Date, dteDate4 As Date) As Date

Dim dteMaxDate As Date

dteMaxDate = dteDate1
Debug.Print dteDate2
If IsDate(dteDate2) Then
If dteDate2 > dteMaxDate Then dteMaxDate = dteDate2
If IsDate(dteDate3) Then
If dteDate3 > dteMaxDate Then dteMaxDate = dteDate3
If IsDate(dteDate4) Then
If dteDate4 > dteMaxDate Then dteMaxDate = dteDate4
getmaxdate = dteMaxDate

End Function

我想要实现的是:
 Equipment   45J          
400 2019-10-07
401 2019-10-23
402 2019-11-11
403 2019-11-25

但是,当我使用 45J 运行查询时:
getmaxdate([E1_45J],[E2_45J],[E3_45J],[E4_45J])

我在条件表达式中发现数据类型不匹配。

我试图用以下方法强制我的查询值的格式:
45J: getmaxdate(Format([E1_45J], "yyyy/mm/dd"),Format([E2_45J], "yyyy/mm/dd"),Format([E3_45J], "yyyy/mm/dd"),Format([E4_45J], "yyyy/mm/dd"))

但是,我仍然遇到相同的错误。

我究竟做错了什么?

最佳答案

大概是因为您传递了一个 Null,所以类型不匹配。到 Date参数,你不能这样做。

更改函数的签名以接受 Variant值而不是 Date - 一个 Variant可以装一个Null值(value)。

定义所有参数后 As Date , IsDate函数只能返回 True .

我建议不要假设 date1是有效日期,默认“最大日期”为 CDate(0) :如果记录中有任何日期,它将大于该日期。

小心关闭您的 If...End If块也是。

关于vba - 从 4 列函数获取最新日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59413848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com