VBA - 日期的最小值/最大值()

标签 vba excel

Excel 的 Min 和 Max 函数对于以下代码不起作用,是否有原因?

Sub minmaxtest()

Dim TEST_VALUES() As Date
ReDim TEST_VALUES(1 To 5, 1 To 1)

TEST_VALUES(1, 1) = 1
TEST_VALUES(2, 1) = 2
TEST_VALUES(3, 1) = 3
TEST_VALUES(4, 1) = 4
TEST_VALUES(5, 1) = 5

MsgBox Application.Max(TEST_VALUES)

End Sub

Dim TEST_VALUES() As Integer 的情况下不存在此问题,但在将其声明为 Date 时会出现此问题。

我尝试包装 (CLng(CDate()) 中分配的值,例如 TEST_VALUES(1, 1) = (CLnd(CDate(1)) 但这也不能解决我在此日期范围上执行分析的问题(这是此类变量的正确名称吗?)谢谢!

最佳答案

如果您在每个数组项上使用 CDate,您将得到 5 作为 Max:

Sub minmaxtest()

Dim TEST_VALUES() As Integer
ReDim TEST_VALUES(1 To 5, 1 To 1)

TEST_VALUES(1, 1) = CDate(1)
TEST_VALUES(2, 1) = CDate(2)
TEST_VALUES(3, 1) = CDate(3)
TEST_VALUES(4, 1) = CDate(4)
TEST_VALUES(5, 1) = CDate(5)

MsgBox Application.Max(TEST_VALUES)

End Sub

关于VBA - 日期的最小值/最大值(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39016448/

相关文章:

vba - Excel VBA 中需要对象错误

excel - UDF 在 Debug模式下工作,但它不会为单元格提供值

excel - 找到 Excel 工作表中最后使用的行单元格

excel - 如何在 Excel 的一个单元格中应用多个(两个以上)条件?

python - pandas.read_excel 在 excel 中具有相同的列名

vba - 将图片从 excel 粘贴到适合布局的 powerpoint

excel - 有没有办法使用 VBA 中的列号选择整列?

vba - Excel VBA - 从一张纸复制到另一张纸> 仅复制一行

excel - SUMIF 公式中的嵌套 MIN

vba - 如何在 vba 中执行命令之前检查它是否可行?