我在我的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分钟后重复,如果它仍然在设定价差内。
谢谢
发布于 2014-06-26 11:21:33
很好的问题!........the代码需要“记住”之前的调用被赋予了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因为只有一个全局函数,所以这只适用于一个函数调用。
https://stackoverflow.com/questions/24428679
复制相似问题