gpt4 book ai didi

Excel、VBA 和日期

转载 作者:行者123 更新时间:2023-12-04 21:41:48 26 4
gpt4 key购买 nike

我要做的就是取一个日期,在日期上添加一个,将其粘贴在工作表中,然后让工作表在输入的日期运行公式。单元格都被格式化为英文日期,但是当我用下面的代码分配单元格的值时,它认为给出的日期是美国格式,即使它已经是英文格式,因此尝试将其转换为英文格式。我怎样才能阻止它在美国思考?

我放弃了所有 VBA 的功能,并创建了一个添加日期的功能,因为 VBA 只是让我头疼。

Dim D, M, Y As String
Dim S1, S2, NewDay, NewMonth, NewYear As Integer
S1 = InStr(1, StartDate.Value, "/")
S2 = InStr(S1 + 1, StartDate.Value, "/")
Debug.Print (CStr(S1) + " " + CStr(S2))
D = Mid(StartDate.Value, 1, S1 - 1)
M = Mid(StartDate.Value, S1 + 1, S2 - S1 - 1)
Y = Mid(StartDate.Value, S2 + 1)
Debug.Print (D + " " + M + " " + Y)

NewDay = CInt(D) + 1
NewMonth = CInt(M)
NewYear = CInt(Y)
If NewDay > DaysInMonth(M, Y) Then
NewDay = 1
NewMonth = NewMonth + 1
If NewMonth > 12 Then
NewMonth = 1
NewYear = NewYear + 1
End If
End If

StartDate.Value = CStr(NewDay) + "/" + CStr(NewMonth) + "/" + CStr(NewYear)

然后在另一个函数中,我只是像这样设置单元格的值
With sheet.Range("A2")
'.. Stuff
.Offset(i, 1) = StartDate.Value

最佳答案

VBA 期望所有日期都采用美国方式:mm/dd/yy。
我只是将常量用于正确的格式:kUsFmt = "#mm\/dd\/yyyy#"然后,无论我在哪里需要日期,我都会使用带有 kUsFmt 的格式函数:

strSql = "...WHERE myDate = " & Format (Date,kUsFmt)

编辑:

为什么要在代码中拆分 M d y 中的内容?给日期加 1 很简单
myDate = myDate + 1 !

关于Excel、VBA 和日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5408225/

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