如何修复#NAME?公式或vba出错

时间:2016-01-11 06:55:43

标签: excel vba excel-vba excel-formula

我正在使用excel公式来引用,并在必要时调整很长的已删除值列表。我的问题是偶尔价值以" = +"开头。导致它们被视为公式,从而产生#NAME?错误。每当我的公式引用这些单元格时,它也会产生所述错误。

无论如何都要考虑我公式中的#NAME错误?像ISNA这样的东西,但#NAME错误?

如果不可能,我可以使用VBA删除" = +"来自任何包含它的细胞?

任何帮助将不胜感激,我一直在寻找这个答案几个小时。

4 个答案:

答案 0 :(得分:0)

我认为您可以直接在公式中使用= IFERROR(),这样可以节省开发专用于此特定错误的VBA代码的时间。

答案 1 :(得分:0)

你能不能使用......

= ERROR.TYPE(A1)= 5

这应该在公式中产生一个TRUE-FALSE ......

答案 2 :(得分:0)

如果你想删除" = +"你可以使用这样的东西:

Dim index As Integer
For index = 1 To 10
    If (Mid(Cells(index, 1), 1, 2) = "=+") Then
        Cells(index, 1) = Mid(Cells(index, 1), 3)
    End If
Next

它将替换以" + ="开头的单元格内容。没有" + ="。

的相同内容

答案 3 :(得分:0)

最简单的方法是在每个单元格的公式前添加'。 想象一下,您的抓取值在C1:C10范围内,您可以像这样修复:

For j = 1 To 10
    Range("C" & j).Value = "'" & Range("C" & j).Formula
Next j 

通过这样做,您可以保留已抓取对象的原始值。 当然,您可以在源头解决问题,即想象您打印这样的值:

rng.Value = myScrapedValue

...你可以像这样替换它:

rng.Value = quoteFirst(myScrapedValue)

......其中

Private Function quoteFirst(ByVal strng As String) As String
    quoteFirst = "'" & strng
End Function