【发布时间】:2011-05-09 00:30:32
【问题描述】:
我正在使用 Excel 的 COM 接口,我想获取单元格的格式化文本表示,而不是真正的底层值。
例如,假设单元格包含数字1.23456,并且用户指定了带 1 个小数位的数字格式。然后我希望能够读取字符串"1.2"。我知道我可以使用Range.Text,但这在几个重要方面都失败了。 Range.Text 返回用户在工作表视图中看到的内容,因此如果单元格被隐藏,则返回空字符串。如果单元格的宽度较低,则返回截断的字符串。 Range.Text 也下降了,因为它被限制为 1024 个字符。
另一个用例是当单元格评估为错误时,例如#DIV/0!、#NAME?、#REF! 等。我知道我可以读取Range.Value 并测试变体是否为varError 类型(我使用的是Delphi,在VBA 中它将是vbError)。我不知道如何获取文本表示 #DIV/0! 等。Range.Text 再次返回此,但如果单元格被隐藏或太窄则不会。
编辑
我认为 Range.Text 的限制实际上是 255 个字符。
【问题讨论】: