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

问题描述 投票:0回答:3

我认为 Excel 正在走向衰老。

在我的一生中,我无法让我的 Excel VBA 宏忽略“数字存储为文本”错误。

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

出于测试目的,我已将宏代码简化为最基本的代码,但该三角形仍然存在。这是我的宏:

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

这怎么不会让错误消失呢?我也试过

Range("Main!C71")
。那也没用。

这应该是非常简单的,但是一行代码仍然不起作用。有什么想法吗?

vba excel cells
3个回答
2
投票

你可以试试这个

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

另一种方法是您可以手动禁用后台错误检查
您可以通过单击 文件 - Excel 选项 - 公式 找到此选项,然后取消选中该选项

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

background error checking


0
投票

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

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

0
投票

“Selection.Errors(xlTextDate).Ignore = True”将不起作用。 要正确将 (xlTextDate) 替换为以下值之一 (3) (xl文本日期) (xlNumberAsText - 1) 但是,请检查各个值,因为您的 Excel 版本可能不同。我正在使用 Excel 365。

来源:https://learn.microsoft.com/en-us/office/vba/api/Excel.XlErrorChecks 在该页面上,每个变量都列出了所需的值,但没有列出 Excel 分配的值。 变量、报告/需要、实际 Excel 值 xlEmptyCellReferences, 7, 8 xlEvaluateToError, 1, 2 xl不一致公式, 4, 5 xlInconsistentListFormula, 9, 10 xlListDataValidation, 8, 9 xlNumberAsText, 3, 4 xlOmitedCells, 5, 6 xlTextDate, 2, 3 xlUnlockedFormulaCells, 6, 7

规则不是我制定的!当这些值被更正时,我们的代码可能会再次失败。我会报告,但微软从未修复我报告的错误。

使用文本格式的原因:存储Facebook视频ID“4592884094151437”变成“4592884094151430”不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.