将地址添加到公式VBA

时间:2017-07-13 10:58:29

标签: excel-vba vba excel

我希望通过添加一些单元格地址来更新公式,但是当我运行它时,在第一次增量后出现类型不匹配错误。

编辑:错误已被发现,它正在工作,但在另一张表中有另一个问题,日期变得流氓并且无缘无故地变成#N / A我可以找到。无论如何,我现在的问题是:对于i = 1到3,我得到= 0 + $ X $ 3 + $ AI $ 3 + $ AT $ 3 + $ BE $ 3 + $ BP $ 3 + $ CA $ 3因此。如何摆脱我的信件周围的$?我想扩展那个公式。我知道只需点击单元格并按下3次F4,我就可以摆脱所有$,但有没有自动的方法呢?  这是我的代码:

O(n^2)

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,"$","")