簡體   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