我希望通过添加一些单元格地址来更新公式,但是当我运行它时,在第一次增量后出现类型不匹配错误。
编辑:错误已被发现,它正在工作,但在另一张表中有另一个问题,日期变得流氓并且无缘无故地变成#N / A我可以找到。无论如何,我现在的问题是:对于i = 1到3,我得到= 0 + $ X $ 3 + $ AI $ 3 + $ AT $ 3 + $ BE $ 3 + $ BP $ 3 + $ CA $ 3因此。如何摆脱我的信件周围的$?我想扩展那个公式。我知道只需点击单元格并按下3次F4,我就可以摆脱所有$,但有没有自动的方法呢? 这是我的代码:O(n^2)
答案 0 :(得分:0)
我只能通过确保正在检查的某个单元格(使用单元格<>0
)包含错误来重新创建您提到的错误(类型不匹配)。我通过输入=2/0
来模拟这个以创建除以零。 (#DIV/0!
)
下面的代码是您的代码,但是两个if语句包含在另一个IF中,该IF检查单元格是否先出错。如果是,则不会将其添加到您的M3
公式中。如果你需要重新加工以包含它,如果它确实包含错误,请告诉我,我将重新起草。
Public Sub test3()
Dim i As Integer
With Sheet10
.Cells(3, 13).Formula = "=0"
For i = 1 To 100
If Not (IsError(.Cells(1, 22 * i - 8))) Then
If .Cells(1, 22 * i - 8) <> 0 Then
.Cells(3, 13).Formula = .Cells(3, 13).Formula & "+" & .Cells(3, 22 * i + 2).Address
End If
End If
If Not (IsError(.Cells(1, 22 * i + 13))) Then
If .Cells(1, 22 * i + 13) <> 0 Then
.Cells(3, 13).Formula = .Cells(3, 13).Formula & "+" & .Cells(3, 22 * i + 13).Address
End If
End If
Next i
End With
End Sub
答案 1 :(得分:-1)
最简单的是替换
.Cells(3, 22 * i + 13).Address
与
Replace(.Cells(3, 22 * i + 13).Address,"$","")