我一直在尝试使用这些代码进行各种排列,试图让某些东西起作用。 if语句的前半部分正在运行,但是如果范围的总和为0,则代码不执行所需的计算。我得到了#34;类型不匹配"错误。
有什么想法吗?
n = ActiveWorkbook.Sheets.Count
For i = 2 To n
If Application.Sum(Sheets(i).Range("O13:O33")) > 0 Then
Range(Cells(13, i), Cells(19, i)).Value = Sheets(i).Range("P13:P19").Value
Else
Range(Cells(13, i), Cells(19, i)).Value = Sheets(i).Range("I13:I19") - (4 * Sheets(i).Range("K13:K19"))
End If
Next i
最好的问候。
答案 0 :(得分:1)
您无法在多小区范围内进行数学运算。
第一个基本上是移动一个数组,但是你需要循环遍历该范围并一次一个地对每个单元格进行数学计算。
Dim Rng As Range
n = ActiveWorkbook.Sheets.Count
With ActiveSheet
For i = 2 To n
If Application.Sum(Sheets(i).Range("O13:O33")) > 0 Then
.Range(.Cells(13, i), .Cells(19, i)).Value = Sheets(i).Range("P13:P19").Value
Else
For Each Rng In .Range(.Cells(13, i), .Cells(19, i))
Rng.Value = Sheets(i).Cells(Rng.Row, "I") - (4 * Sheets(i).Cells(Rng.Row, "K"))
Next Rng
End If
Next i
End With