编译错误:总和循环中的类型不匹配,excel VBA
每当我运行未注释的代码段时,就会出现编译错误:类型不匹配,Excel会突出显示EIP(p,t)前面的+号 然而,当我运行代码的注释部分时,我没有得到这个错误。我找不到两者之间的差异,无法解释错误的差异。我错过了什么编译错误:总和循环中的类型不匹配,excel VBA,excel,vba,for-loop,compiler-errors,type-mismatch,Excel,Vba,For Loop,Compiler Errors,Type Mismatch,每当我运行未注释的代码段时,就会出现编译错误:类型不匹配,Excel会突出显示EIP(p,t)前面的+号 然而,当我运行代码的注释部分时,我没有得到这个错误。我找不到两者之间的差异,无法解释错误的差异。我错过了什么 提前谢谢 您需要正确声明变量,如果您得到类型不匹配,请将这行代码从:Sum=SumEIP+EIP(p,t)更改为:Sum=Sum+EIP(p,t)。您好,您能补充一点细节吗?我不确定当您得到类型不匹配时,变量有什么内容?IP被声明为变量,因此可以包含任何内容,而EIP是整数,SUME
提前谢谢 您需要正确声明变量,如果您得到类型不匹配,请将这行代码从:Sum=SumEIP+EIP(p,t)更改为:Sum=Sum+EIP(p,t)。您好,您能补充一点细节吗?我不确定当您得到类型不匹配时,变量有什么内容?IP被声明为变量,因此可以包含任何内容,而EIP是整数,SUMEIP是长的。如果这些都应该是整数,那么就把它们都声明为长。声明的
I
、p
和t
在哪里?如果类型不匹配,就需要正确声明变量。将这行代码从:Sum=SumEIP+EIP(p,t)更改为:Sum=Sum+EIP(p,t),我不确定我是否了解当您得到类型不匹配时,变量有什么内容?IP被声明为变量,因此可以包含任何内容,而EIP是整数,SUMEIP是长的。如果这些都应该是整数,则将所有声明为Long。在哪里声明了I
、p
和t
?
Dim SumEIP(1 To 708, 1 To 200) As Long
Dim EIP(1 To 708, 1 To 200) As Integer
Dim IP(1 To 708, 1 To 200) As Variant
Dim LeadTime(1 To 708) As Integer
Dim SR(1 To 708, 1 To 200) As Integer
Dim CumReceipt(1 To 708, 1 To 200) As Integer
Sub test()
For i = 1 To 708
LeadTime(i) = 5
Next i
For i = 1 To 708
For t = 1 To 60
For p = 1 To 2
Sum = SumEIP + EIP(p, t)
Next p
SumEIP(i, t) = Sum
Sum = 0
EIP(i, t) = IP(i, t) + SumEIP(i, t)
''For C = 1 To LeadTime(i) - 1
'' SumReceipts = SumReceipts + SR(i, t + C)
''Next C
'' CumReceipt(i, t) = SumReceipts
'' SumReceipts = 0
Next t
Next i
End Sub