excel vba编译年度函数错误

我在excel vba中写了一个vba子程序,总计出售给客户的lbs数量是不同的年份,而且由于某种原因,我得到了年份函数的编译错误。 有人可以解释为什么吗? 这是我的代码:

Private Sub lbsPerCustPerYear_Click() Dim i As Integer Dim Cust As String Dim Cust2 As String Dim Total As Integer Dim Output As Range Dim Output2 As Range Dim Year1 As Date Total = 0 Year1 = Range("K6").Value Cust = Range("C6").Value Cust2 = Range("C7").Value Set Output = Sheets("Sheet2").Cells(2, 2) Set Output2 = Sheets("Sheet2").Cells(2, 3) For i = 1 To 14750 Year1 = Range("K5").Offset(i, 0).Value If IsDate(Sheets("Sheet1").Cells(i, 11)) Then If Cust = Cust2 And Year(Sheets("Sheet1").Cells(i, 11)) = 2012 Then Total = Range("Q5").Offset(i, 0).Value + Range("Q6").Offset(i, 0).Value Cust = Range("C5").Offset(i, 0).Value Cust2 = Range("C6").Offset(i, 0).Value Output.Value = Cust Output2.Value = Total Else Cust = Range("C5").Offset(i, 0).Value Cust2 = Range("C6").Offset(i, 0).Value Year1 = Range("K5").Offset(i, 0).Value Set Output = Output.Offset(1, 0) Set Output2 = Output2.Offset(1, 0) End If Else Cust = Range("C5").Offset(i, 0).Value Cust2 = Range("C6").Offset(i, 0).Value Year1 = Range("K5").Offset(i, 0).Value Set Output = Output.Offset(1, 0) Set Output2 = Output2.Offset(1, 0) End If Next i End Sub 

错误是在行中:

 If Cust = Cust2 And Year(Sheets("Sheet1").Cells(i, 11).Value) = 2012 Then 

提前致谢!

第11列中的每个单元格是否包含有效的date或年份?

你可以先检查一下:

 If isdate(Sheets("Sheet1").Cells(i, 11).Value) then If Cust = Cust2 And Year(Sheets("Sheet1").Cells(i, 11).Value) = 2012 Then ...... end if else 'handle invalid date end if 

还有一些我注意到的是,你用Year作为variables名,把它改成dtYear或者什么,因为这可能与对象库中的Year函数冲突。

是的,你所做的是正确的。 现在你只需要检查是否

1) Sheets("Sheet1").Cells(i, 11).Value这个特定的单元格格式化为date。

2)尝试使用这个而不是Sheets("Sheet1").Cells(i, 11) 。 从语句中删除.value。