我的excel电子表格中有以下功能,只要两个未来合约之间出现某种差价,就会说“交易”:
Function SayIt(c As Boolean, s As String)
If c Then Application.Speech.Speak s
SayIt = c
End Function
然后在工作表上我有:
=SayIt(D15<=G6;REPT("trade ";1))
这很有效,它会说“交易”,但每当价格在套利范围内移动时,它将重复“贸易,贸易,贸易,贸易......”
现在我需要的是一种功能,它可以让它停止说“交易”,而价格允许扩散套利,或者它只会在20秒或1分钟后重复,如果它仍然在设定价差内。
谢谢
答案 0 :(得分:1)
好问题! ........代码需要&#34;记住&#34;前一次调用是 True 以避免重新说话。我们可以使用全局布尔值来执行此操作:
在标准模块中:
Public Was_c_TrueBefore As Boolean
Function SayIt(c As Boolean, s As String)
If c And Not Was_c_TrueBefore Then
Application.Speech.Speak s
Was_c_TrueBefore = True
End If
If Not c Then
Was_c_TrueBefore = False
End If
SayIt = c
End Function
因为只有一个Global,所以这只适用于一个函数调用。