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。