我試圖比較兩個日期(不同列)中的年份和當前日期。如果年份相同,則應在第13欄的相應行上寫上「ATUAL」一詞,如果年份不同,則不應寫任何內容。excel:vba類型不匹配比較日期
這是我到目前爲止嘗試過的。
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
的日期被放置在列我和L以及所有列設置爲日期。我的Excel使用葡萄牙語,所以我的日期格式是dd/mm/yyyy。
當我運行我的代碼,我收到此消息:
運行時錯誤13:類型不匹配
而這部分被高亮顯示:
If Year(ws1.Cells(j, 9)) = Year(Date) Or Year(ws1.Cells(j, 12)) = Year(Date) Then
是誰知道這裏有什麼問題?它應該工作,因爲我所有的日期格式都是一樣的。
您是否檢查哪一行會引發錯誤? –
1)逐行掃描您的代碼,並避開錯誤。 2)雖然你的日期都是相同的格式,他們格式化爲文本或Excel日期?讓他們以相同的方式進行格式化,但所有文本都不會幫助您使用公式。重要的是要有正確的格式的日期,或者你需要先步驟將其轉換爲您需要的格式。 –
@EganWolf是的,我編輯了這個問題。 – paulinhax