当我尝试在Excel for Mac(OS X)上执行以下代码时,我得到一个运行时错误6 -stack溢出,当它到达代码的一部分时,它将两个结果数字分开(Reward_Over_Risk )。即使我将变量从As Single更改为As Double或甚至As Variant,也会发生这种情况。但是,在Windows 10操作系统上运行相同的代码会产生所需的结果。
我可以解决这个问题吗?
有问题的代码如下(注意,我只发布了一部分代码,因为运行时错误发生在" Reward_Over_Risk"行:
Sub Trading_Plan_Code()
Dim Support_Line As Currency
Dim ATR As Currency
Dim Target_Entry As Currency
Dim Profit_Target As Currency
Dim Stop_Loss As Currency
Dim Reward_Over_Risk As Single
Dim Reward_Number As Currency
Dim Risk_Number As Currency
If Worksheets(1).Range("E11").Value = "Long" Then
Support_Line = Worksheets(1).Range("H11").Value
ATR = Worksheets(1).Range("I11").Value
Target_Entry = Worksheets(1).Range("J11").Value
Profit_Target = Worksheets(1).Range("K11").Value
Stop_Loss = Support_Line - ATR
Reward_Number = Profit_Target - Target_Entry
'At this point the result for the Reward_Number is 2.2
Risk_Number = Target_Entry - Stop_Loss
'At this point the result for Risk_Number is 1.5
Worksheets(1).Range("L11").Value = Stop_Loss
Reward_Over_Risk = Reward_Number / Risk_Number
Worksheets(1).Range("M11").Value = Reward_Over_Risk
End If
End Sub
有趣的是,当我更换" Reward_Number"和" Risk_Number"全数2& 1,代码运行。但是,当我添加小数点2.2和1.5时,我得到运行时错误。同样,我不会在Windows机器上运行相同的代码。
任何指针都会非常感激。
谢谢!
答案 0 :(得分:0)
通过使用OS X计算机在Excel 16上运行一些VBA代码,我遇到了与您同样的问题。另外,就像您的情况一样,我尝试通过Windows运行代码,但没有出现问题。作为解决方案,我发现通过不指定变量的类型(Dim Risk_Number
而不是Dim Risk_Number As Currency
)-而是将其作为变体,问题就消失了。希望对您有用。