在我当前版本的Excel中,xlNumberAsText的枚举似乎与文档
XlErrorChecks Enumeration (Excel)和SO上推荐的先前用法不一致.似乎特别的错误是第4项;而以前关于使用VBA清除此错误的帖子使用了3的常量.
这是Excel 2016中的错误吗?或者我做错了什么.
以下是演示此问题的代码.如果在运行代码后检查工作表,很明显错误在Excel中标记为NumberAsText,而不是标记为Inconsistent Formula.
Option Explicit
Sub foo()
Dim I As Long
Dim B As Boolean
Dim S As String
Dim R As Range
'Save current state
B = Application.ErrorCheckingOptions.NumberAsText
'Enable
Application.ErrorCheckingOptions.NumberAsText = True
Set R = Cells(1, 1)
With R
.Clear
.NumberFormat = "@"
.Value = "1"
End With
For I = 1 To 10
S = S & vbLf & I & vbTab & R.Errors(I).Value
Next I
S = Mid(S, 2)
'Restore original state
Application.ErrorCheckingOptions.NumberAsText = B
MsgBox S
End Sub
而且,在尝试清除错误框时,我必须使用
R.Errors(4).Ignore = True
Errors(3)和Errors(xlNumberAsText)都不会对错误框产生任何影响.
我注意到枚举和文档的其他不一致之处:
Inconsistent Formula: 5
Wrong Data Type: 2
我不打算去查看其余部分.但我打算尝试向MS报告.感谢那些证实了这个问题的人.
最佳答案 跟进:我通过Excel中的反馈选项向MS报告此情况.在今天上午的更新后,问题似乎得到了纠正.