[英]Run Time Error '13: Type Mismatch when comparing Dates - 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
有人知道這里有什么問題嗎? 它應該工作,因為我的所有日期都以相同的方式格式化。
嘗試這個:
Dim date1 As Date, date2 As Date
設置變量的值
date1 = ws1.Cells(j, 9) date2 = ws1.Cells(j, 12)
在If
語句中使用變量
If Year(date1) = Year(Date) Or Year(date2) = Year(Date) Then
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.