Excel VBA Application.Speech.Speak方法:读取数字为数千

(使用Excel 2013)

通过在工作簿中打开Speak Cells on Enter文本到语音的行为似乎是这样的:

将数字格式化为常规,当您input1245时,将会读取单元格为“十二四五”。 如果你input1245,它会读作“一千二百四十五”,并Use 1000 Separator (,)打勾将单元格格式更改为数字。

(如果将单元格格式化为数字并清除Use 1000 Separator (,)checkbox,则Speak Cells on Enter会读回“十二四十五。如果格式化单元格对话框中的Decimal places为1或更大,例如“一千二百四十五分零点”(例如小数点后一位)。

但是,如果使用Application.Speech.Speak Range("A1") (在A1input1,245),它将读回“十二五五”,而不pipe事实上它是否有一个逗号,事实上它被格式化为一个数字。

一旦你达到5个数字, Speak Cells on EnterApplication.Speech.Speak Range("A1") Speak Cells on Enter读取千位的值(即“一万个”),而不pipe该单元是否是General或Number。

有没有人知道任何方式使Application.Speech.Speak阅读数字less于10,000成千上万容易,或者你需要做一个解决方法,将数字parsing成单词,然后读出结果?

提前致谢。

另一个优秀的问题 这适用于我:

 Application.Speech.Speak(Format(Range("A1"),"#,##0")) 
 Sub Numb() If Selection < 10000 Then Application.Speech.Speak Selection End Sub 

要么

 Sub ReadTheNumber() If Range("A1") < 10000 Then Application.Speech.Speak Selection End Sub