我认为 Excel 正在走向衰老。
在我的一生中,我无法让我的 Excel VBA 宏忽略“数字存储为文本”错误。
在名为“Main”的工作表上的单元格 C71 中,我有值 6135413313,Excel 警告该值是以文本形式存储的数字。应该如此。但我想删除宏末尾那个烦人的小三角形。
出于测试目的,我已将宏代码简化为最基本的代码,但该三角形仍然存在。这是我的宏:
Sub test()
Range("C71").Errors(xlEvaluateToError).Ignore = True
End Sub
这怎么不会让错误消失呢?我也试过
Range("Main!C71")
。那也没用。
这应该是非常简单的,但是一行代码仍然不起作用。有什么想法吗?
循环遍历范围中的每个单元格来测试 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
“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”不起作用。