首页 文章

VBA Excel不会忽略“存储为文本的数字”错误

提问于
浏览
3

我认为Excel已经老了 .

对于我的生活,我无法让我的Excel VBA宏忽略“存储为文本的数字”错误 .

在名为“Main”的工作表上的单元格C71中,我有值6135413313,Excel警告的是一个存储为文本的数字 . 它应该是 . 但我想在宏的末尾删除那个恼人的小三角形 .

为了测试目的,我已经将我的宏代码缩减为裸骨,但这个三角形仍然存在 . 这是我的宏:

Sub test()
    Range("C71").Errors(xlEvaluateToError).Ignore = True
End Sub

这怎么没有让错误消失?我也试过 Range("Main!C71") . 那也行不通 .

这应该是令人难以置信的容易,但一行代码仍然无法正常工作 . 有任何想法吗?

2 回答

  • 0

    你可以试试这个

    Sub test()
    Sheets("Main").Range("C71").Errors(xlNumberAsText).Ignore = True
    End Sub
    

    要么

    Sub test()
    Sheets("Main").Range("C71").Value = Sheets("Main").Range("C71").Value
    End Sub
    

    要么

    另一种方法是你可以手动禁用 background error checking .
    您可以通过单击 File - Excel Options - Formulas 找到此选项并取消选中该选项

    它将禁用所有单元格的错误检查

    background error checking

  • 1

    循环遍历范围中的每个单元格以测试xlNumberAsText错误并设置ignore标记有效(尽管如果您有大量单元格,这可能会很慢) .

    Sub test2()
        Call turnOffNumberAsTextError(Sheets("Main").Range("C71"))
    End Sub
    
    Sub turnOffNumberAsTextError(rge As Range)
        Dim rngCell As Range
        For Each rngCell In rge.Cells
            With rngCell
                If .Errors.Item(xlNumberAsText).Value Then
                    .Errors.Item(xlNumberAsText).Ignore = True
                End If
            End With
        Next rngCell
    End Sub
    

相关问题