gpt4 book ai didi

excel - VBA日期+逻辑

转载 作者:行者123 更新时间:2023-12-04 22:33:32 40 4
gpt4 key购买 nike

有人能帮我吗?似乎我的 for 逻辑根本不起作用,因为它一直在上午 12:00 返回我的开始时间
这是我的代码

Sub forlogic()
Dim i As Single
Dim totalrow As Double
Dim startdate As Date
Dim mydate As Date

totalrow = Sheet1.Range("A1", Sheet1.Range("A1").End(xlDown)).Rows.Count
mydate = Date

Debug.Print mydate

mydate = mydate - 90

Debug.Print mydate

For i = 1 To i = rowtotal Step 2
startdate = Format(Range("E" & i).Value, "short date")
startdate = Format(Date, "mm/dd/yyyy")

If mydate > startdate Then
Range("M" & i).Value = "Expired"
End If

i = i + 1
Next i
Debug.Print startdate
End Sub

它不断地返回我

12:00:00 AM 开始日期

最佳答案

下面的代码经过测试并按预期工作。更新列表:

1) 引用工作表,Thisworkbook.Sheets("Sheet1")我将其调暗为 ws2) 更新totalrow计算
3) 因为你只对 IF 的一个结果采取行动语句,您可以压缩为 1 行。
4) 添加Option Explicit捕获交换之类的错误 totalrowrowtotal (这 会发现您的工作表引用错误)
5) 调整了 i 增量(默认为 1,无需声明 Step 1 )

这是经过测试的,我的工作正常。

Option Explicit

Sub forlogic()
Dim totalrow As Long, i As Long
Dim startdate As Date, mydate As Date
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")

totalrow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
mydate = Date - 90

For i = 1 To totalrow
startdate = Format(ws.Range("E" & i).Value2, "mm/dd/yyyy")
If mydate > startdate Then ws.Range("M" & i).Value = "Expired"
Next i

End Sub

关于excel - VBA日期+逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51050039/

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