Excel vba例程在第一次完全工作后不工作

Excel vba例程在第一次完全工作后不工作,excel,vba,office-2016,Excel,Vba,Office 2016,我的例行程序以前运行得很好,但突然出现了错误。我不明白为什么,我能想到的唯一一件事是更新的office版本使这个例程不再工作。我们从office 2013更改为office 2016(已经有一段时间了,但我有一段时间没有使用此模板) 这是导致错误的代码: Sub kopie_formule() Dim x As Integer Dim aantalrijen As Integer Dim NB As Variant With Worksheets("Promo Evaluatie") '.U

我的例行程序以前运行得很好,但突然出现了错误。我不明白为什么,我能想到的唯一一件事是更新的office版本使这个例程不再工作。我们从office 2013更改为office 2016(已经有一段时间了,但我有一段时间没有使用此模板)

这是导致错误的代码:

Sub kopie_formule()
Dim x As Integer
Dim aantalrijen As Integer
Dim NB As Variant

With Worksheets("Promo Evaluatie")

'.Unprotect Password:="TM"
x = 13
    aantalrijen = .Range("B14", .Range("B13").End(xlDown)).Cells.Count
    .Range("Y14:Y" & aantalrijen + x) = "=IF(ISERROR((RC[-7]-RC[-2])),""#N/B"",IF(RC[-7]-RC[-2]<0,0,(RC[-7]-RC[-2])))"
    .Range("Z14:Z" & aantalrijen + x) = "=IF(ISERROR(RC[-1]/RC[-8]),""#N/B"",RC[-1]/RC[-8])"
    .Range("AA14:AA" & aantalrijen + x) = "=IF(ISERROR(RC[-9]/RC[-5]),"""",RC[-9]/RC[-5])"
    .Range("AB14:AB" & aantalrijen + x) = "=IF(ISERROR(RC[-12]*RC[-2]),""#N/B"",RC[-12]*RC[-2])"
    .Range("AC14:AC" & aantalrijen + x) = "=IF(ISERROR(RC[-9]/RC[-24]/RC[-8]),""#N/B"",RC[-9]/RC[-24]/RC[-8])"
    .Range("AD14:AD" & aantalrijen + x) = "=IF(ISERROR(RC[-7]/RC[-25]/RC[-6]),""#N/B"",RC[-7]/RC[-25]/RC[-6])"
    .Range("AE14:AE" & aantalrijen + x) = "=IF(RC[-12]="""",""#N/B"",IF(RC[-10]="""",""#N/B"",IF(RC[-26]="""",""#N/B"",RC[-12]-(RC[-10]*RC[-26]))))"
    .Range("AF14:AF" & aantalrijen + x) = "=IF(ISERROR(RC[-1]*0.5),""#N/B"",RC[-1]*0.5)"
    .Range("AG14:AG" & aantalrijen + x) = "=IF(ISERROR((RC[-1]*0.5)-RC[-5]-RC[-18]),""#N/B"",(RC[-1]*0.5)-RC[-5]-RC[-18])"
    .Range("AH14:AH" & aantalrijen + x) = "=IF(ISERROR((RC[-2]*0.5)-RC[-20]-RC[-6]-RC[-19]),""#N/B"",(RC[-2]*0.5)-RC[-20]-RC[-6]-RC[-19])"
    .Range("AI14:AI" & aantalrijen + x) = "=IF(ISERROR((RC[-21]+RC[-19]+RC[-20])/RC[-4]),""#N/B"",IF(((RC[-21]+RC[-19]+RC[-20])/RC[-4])<0,""#N/B"",((RC[-21]+RC[-19]+RC[-20])/RC[-4])))"
    .Range("AJ14:AJ" & aantalrijen + x) = "=IF(ISERROR((RC[-22]+RC[-20]+RC[-8]+RC[-21])/RC[-5]),""#N/B"",IF(((RC[-22]+RC[-20]+RC[-8]+RC[-21])/RC[-5])<0,""#N/B"",(RC[-22]+RC[-20]+RC[-8]+RC[-21])/RC[-5]))"
子kopie_公式()
作为整数的Dim x
Dim aantalrijen作为整数
Dim NB作为变体
带工作表(“促销评估”)
“.取消保护密码:=“TM”
x=13
aantalrijen=.Range(“B14”),.Range(“B13”).End(xlDown)).Cells.Count

.Range(“Y14:Y”&aantalrijen+x)=IF(iError((RC[-7]-RC[-2]),“#N/B”,IF(RC[-7]-RC[-2]您会遇到什么错误?在运行时或代码启动之前,在哪一行出现了错误?抱歉,应该已经包含了错误。当我尝试每一行时,我得到的错误是针对所有这些行的。这是错误:执行期间的错误1004:由应用程序或对象定义的错误。我认为第一行可能是错误所以我把它改成了一个注释,但下一行和下一行都是如此。首先,它工作得很好。
aantalrijen
在代码出错停止时有什么值?227。加上13,结果是240。这正是最后一行填充了数据。注释很小,但使用.Range(“Y14:Y”和aantalrijen+x).Formula2R1C1=“=IF(iError((RC[-7]-RC[-2])),”N/B“,IF(RC[-7]-RC[-2]