假设现在是11小时11分钟。它读作“一小时”和“十一分钟”,如:
Sub TEST1()
Application.Speech.Speak "It is " & Hour(Now()) & " hours and " & Minute(Now()) & " minutes"
End Sub
然而,下面的内容是“十一”小时和十一分钟
Sub TEST2()
Application.Speech.Speak "It is 11 hours and 11 minutes"
End Sub
相反,它是“一小时”和“十一分钟”,如下所示:
Sub TEST3()
Application.Speech.Speak "It is " & "11" & " hours and " & "11" & " minutes"
End Sub
我怎样才能把这些数字读成单词呢?
发布于 2018-02-14 15:39:32
您需要创建/修改字符串以生成所需的结果。
Sub dural()
Application.Speech.Speak "11"
Application.Speech.Speak "eleven"
End Sub
会重复同样的事情。
Sub dural()
Application.Speech.Speak "1 1"
Application.Speech.Speak "one one"
End Sub
也会这么做。一旦你决定了你想让计算机说什么,你就可以格式化/重新格式化字符串来产生这个结果。
EDIT#1:
在我的电脑上:
Sub dmral()
Dim s As String
s = "It is " & "11" & " hours and " & "11" & " minutes"
MsgBox s
Application.Speech.Speak s
End Sub
也能像预期的那样工作。
看来需要先执行连接。
发布于 2018-02-14 16:02:54
基于的SpeakXML自变量方法
语法
.Speak
(Text,SpeakAsync,SpeakXML,Purge)
如果将第三个参数SpeakXML
设置为True,则可以在文本字符串中使用XML标记。
XML <spell>
标记强制语音拼出所有文本,而不是使用默认的单词和句子中断规则。所有字符都应该扩展到相应的单词(包括标点符号、数字等)。注意,<spell>
标记不能是空的,也不要忘记结束标记</spell>
。
尝试在11
的两个变体中使用以下内容
码
Sub TEST()
Application.Speech.Speak "It is " & "<spell>11</spell>" & " hours and " & "11" & " minutes", False, SpeakXML:=True
End Sub
备注/警告
我使用的是中欧语言版本,而你的例子在我的例子中没有说出一个,所以可能还有另一个本地设置问题。
发布于 2018-02-14 16:22:42
葡萄牙语有一些有趣的发音挑战。除其他外,我们还有"-ão“这个词的结束,就像在圣保罗一样。-ão的发音与“母猪”中的-ow几乎相似,这意味着当你发音元音时,空气应该从你的鼻子中流出。有人说..。
Application.Speech.Speak "Já são" & Hour(Now()) & "horas e 11 minutos"
Application.Speech.Speak "11"
->读“十一”
Application.Speech.Speak "Já são" & "11" & "horas"
Application.Speech.Speak "Já sao" & Hour(Now())
-“现在是十一小时了”。请注意,在这种情况下,鼻腔-“o”被移除。所以,数字发音是以单词表示的。
Application.Speech.Speak "Já são^" & Hour(Now())
-“现在是十一小时了”。注意,鼻腔-“o”现在已经出现了,并且后面还有一个"^“标志。
我不知道Excel为什么会那样做。但是,问题解决了 :)
https://stackoverflow.com/questions/48790329
复制相似问题