gpt4 book ai didi

vba - 如果没有使用 VBA 找到特定日期,如何找到下一个日期

转载 作者:行者123 更新时间:2023-12-04 20:57:05 26 4
gpt4 key购买 nike

我在这里需要帮助。我有工作表 1 和工作表 2。在 Sheet1/2 中,我在 B 列中有日期,并且两个工作表日期都不相同,但是当我推荐选择打印日期时,如果 VBA 找不到我的日期,我希望 VBA 选择最近的日期。例如:-如果我要求 VBA 从 17 年 8 月 12 日开始打印,我可以在 sheet1 中选择,但在 Sheet 2 中没有 8 月 12 日,因此必须选择 13 日或 11 日并打印。
在我的编码中,如果它在同一日期,它将打印两张表。但是如果它失败了,它就会显示错误。

请看下面我的代码。

Sub nextdate()

Dim Sh As Worksheet
Set sh2 = Sheets("Sheet2")
Set sh3 = Sheets("Sheet3")
Dim i, j2, j3, sh2EndCell, sh3EndCell As Integer
Dim W1Enddate As Date

W1Enddate = Application.InputBox("Enter the End Date")
ddate = Range("B" & Rows.Count).End(xlUp).Row

sh2EndCell = sh2.Range("b" & Rows.Count).End(xlUp).Row
sh3EndCell = sh3.Range("b" & Rows.Count).End(xlUp).Row
For i = 2 To sh2EndCell
If sh2.Range("b" & i).Value = W1Enddate Then
j2 = i
Exit For
End If

最佳答案

不确定我的问题描述是否正确,但试试这个:

...
...
sh2EndCell = sh2.Range("b" & Rows.Count).End(xlUp).Row
Dim MinDateDiff As Long
Dim ClosestDate

MinDateDiff = 1000000

For i = 2 To sh2EndCell
If Abs(DateDiff("d", sh2.Range("b" & i).Value, W1Enddate)) < MinDateDiff Then
MinDateDiff = Abs(DateDiff("d", sh2.Range("b" & i).Value, W1Enddate))
ClosestDate = sh2.Range("b" & i).Value
j2 = i
End If
Next

关于vba - 如果没有使用 VBA 找到特定日期,如何找到下一个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45374817/

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