我正在使用Excel的COM接口,並且希望獲取單元格的格式化文本表示形式,而不是真正的基礎值。如何讀取Excel中單元格的格式化文本表示形式
例如,假設單元格包含數字1.23456
,並且用戶已指定數字格式並帶有一個小數位。然後,我希望能夠讀取字符串"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個字符。
當單元格包含超過255個字符時,此操作失敗 – 2010-11-14 20:26:32
其格式函數具有255個字符限制 - 嘗試修改後的版本只在數值爲數字時才使用格式。 – 2010-11-15 08:39:02
這似乎很有希望,但Format是一個VBA函數。我使用COM(它是一個COM加載項),我不確定是否有可用的等效函數。 – 2010-11-15 12:05:44