繁体   English   中英

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

[英]excel: vba type mismatch comparing dates

我试图比较两个日期(在不同的列中)和当前年份日期之间的年份。 如果年份相同,则应在第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。

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

运行时错误13:类型不匹配

这一部分突出显示:

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语句中使用变量

    If Year(date1) = Year(Date) Or Year(date2) = Year(Date) Then

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM