gpt4 book ai didi

vba - excel:比较日期的vba类型不匹配

转载 作者:行者123 更新时间:2023-12-01 17:22:30 38 4
gpt4 key购买 nike

我试图对两个日期(在不同列中)的年份和当前年份日期进行比较。如果年份相同,则应在相应行的第 13 列写入单词“ATUAL”,如果年份不同,则不应写入任何内容。

这是我到目前为止所尝试过的。

Sub CopyColumn2()

Dim i As Long
Dim j As Long
Dim lastrow As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim wbk As Workbook
Dim wb As Worksheet

Set wbk = Workbooks.Open("I:\CGP\DEOPEX\01 - Supervisão\01 - Administrativo\06- ADM - Taís e Natalia\Férias - Aprovadas\FÉRIAS TÉCNICOS EXTERNAS.xlsx")
Set ws1 = ThisWorkbook.Sheets("BASE_TOTAL")
Set ws2 = wbk.Worksheets("FUNCIONÁRIOS")

lastrow = ws2.Range("A" & Rows.Count).End(xlUp).Row


For j = 2 To lastrow
If Year(ws1.Cells(j, 9)) = Year(Date) Or Year(ws1.Cells(j, 12)) = Year(Date) Then
ws1.Cells(j, 13) = "ATUAL"
Else
ws1.Cells(j, 13) = ""
End If
Next j

End Sub

日期放置在 I 和 L 列中,并且所有列都设置为日期。我的 Excel 是葡萄牙语的,所以我的日期格式是 dd/mm/yyyy。

当我运行代码时,我收到此消息:

Run-time error 13: Type mismatch

这部分被突出显示:

If Year(ws1.Cells(j, 9)) = Year(Date) Or Year(ws1.Cells(j, 12)) = Year(Date) Then

有人知道这是什么问题吗?它应该可以工作,因为我所有的日期都以相同的方式格式化。

最佳答案

试试这个:

  1. 声明日期变量Dim date1 As Date, date2 As Date
  2. 设置变量值

    date1 = ws1.Cells(j, 9)
    date2 = ws1.Cells(j, 12)

  3. If 语句中使用变量

    如果年(日期1) = 年(日期) 或年(日期2) = 年(日期) 则

关于vba - excel:比较日期的vba类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44890105/

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