Mac OS X上的运行时错误6

时间:2016-09-18 14:32:34

标签: macos excel-vba vba excel

当我尝试在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机器上运行相同的代码。

任何指针都会非常感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

通过使用OS X计算机在Excel 16上运行一些VBA代码,我遇到了与您同样的问题。另外,就像您的情况一样,我尝试通过Windows运行代码,但没有出现问题。作为解决方案,我发现通过不指定变量的类型(Dim Risk_Number而不是Dim Risk_Number As Currency)-而是将其作为变体,问题就消失了。希望对您有用。