我有一个嵌套的for loop
,它希望在一行中获取值,根据一个等式生成一个值,然后对第一个之后的许多行执行相同的操作,同时将值加在一起。
基本上,如果第一行的值为15,第二行和第三行的值为10和12,则存储总值(名为genCost
)的变量将为37。
我想将genCost
的总和值放在一个新的工作表中,以天为单位,但是当我运行代码时,我得到一个运行时1004错误。我意识到这与我正在处理的工作表和我试图将值放入的工作表(代码中的第2行到最后一行)有关。
我理解我的代码可能很简单,但是有人可以帮我解决这个问题吗?
'Nested For loop for ALL OTHER DAYS of genCost...only 1 formula
For j = 2 To dayNumber
For i = 1 To increments
'IF(AND(U7=1,U6=0),R7,0)
If Cells(rowValue, 21) = 1 And Cells(rowValue - 1, 21) = 0 Then
ifValue = Cells(rowValue, 18)
Else
ifValue = 0
End If
'calculate value variable with second half of equation
value = (((Cells(rowValue, 23) * Cells(rowValue, 16) * (1 / 6)) + (Cells(rowValue, 25) * Cells(rowValue, 17) * (1 / 6)) + (Cells(rowValue, 21) * Cells(rowValue, 19) * (1 / 6)) + ifValue))
genCost = genCost + value
'set value and ifValue back to zero and step down one row and do again
value = 0
ifValue = 0
rowValue = rowValue + 1
Next i
Cells(3, j) = genCost
Dim genCostRefNum As Integer: genCostRefNum = 6
ThisWorkbook.Sheets(1).Range(Cells(genCostRefNum, 4)) = genCost
genCost = 0
Next j
答案 0 :(得分:2)
而不是这个
ThisWorkbook.Sheets(1).Range(Cells(genCostRefNum, 4)) = genCost
写这个
ThisWorkbook.Sheets(1).Cells(genCostRefNum, 4) = genCost
Cells
语句的默认属性为Value
(Range
相同)。所以你的代码完全是
ThisWorkbook.Sheets(1).Range(Cells(genCostRefNum, 4).Value).Value = genCost
并在执行Cells
后执行以下操作:
ThisWorkbook.Sheets(1).Range(6).Value = genCost
总是编写完整的语句并且不依赖于默认属性是一种好习惯。